ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » FTPSend Problems

Post new topic  Reply to topic
 FTPSend Problems « View previous topic :: View next topic » 
Author Message
jax
PostPosted: Mon Sep 01, 2003 4:37 am    Post subject: FTPSend Problems Reply with quote

Novice

Joined: 10 Jul 2003
Posts: 12
Location: South Africa

I have installed the FTPSend node (ia73) to my WMQI set-up.
I re-checked that all the files are at the correct locations.
in my compute node, I use the following ESQL command to set the FTP File Name:

SET OutputRoot.WKSPACE.FTPSend1.FileName = 'MyFolder/BBB.txt';
When I deploy my message flow, I get the following in my Log file:

WKSPACE
Error: Failed to locate constant


...and this is the Error in the Application Log:
( BRYANSTONBROKER.default ) No constant for parser class name for root element name 'WKSPACE'.

The message broker could not locate a constant for a parser class name for a root element name.

Contact the author or supplier of the loadable implementation library implementing the parser to check whether or not the constant has been registered. If it has not, install an updated version of the loadable implementation library. If registration has taken place, contact your IBM support center.

Any ideas how to fix this, or what causes it?
Thank you in advance
Jax
Back to top
View user's profile Send private message
Craig B
PostPosted: Tue Sep 02, 2003 9:01 am    Post subject: Reply with quote

Partisan

Joined: 18 Jun 2003
Posts: 316
Location: UK

Hi,

If your broker is reporting that no parser name can be found called WKSPACE, then it means that no parser has registered with this name on broker start-up. Looking at the contents supplied with the FTPSend node it would seem that two lils are supplied, and these are FtpSend.lil and workspace.lil. From the descriptions given the FtpSend.lil is for node itself, and the workspace.lil is for the User Parser than processes the WKSPACE folder. This would suggest that you have not put the workspace.lil file in the bin directory of your Windows broker installation. If you put this lil file in this directory and then restart the broker, then this should resolve your error.

Hope this helps.
_________________
Regards
Craig
Back to top
View user's profile Send private message
jax
PostPosted: Tue Sep 02, 2003 9:29 pm    Post subject: Reply with quote

Novice

Joined: 10 Jul 2003
Posts: 12
Location: South Africa

Thank you Craig, it helped. Funny enough, I've set up the FTP Node for all the developers in our team, and theirs worked... then I figured I missed something on my own installation. You confirmed it, thanks

I have installed the FTP Node successfully, but I have another problem:
If I cofigure the 'FTP File Name' properties of the FTP Node with a hard-coded file name, it works fine. But obviously you want to manipulate the file name in your Compute node. I use the following command in my compute node:
SET OutputRoot.WKSPACE.FTPSend.FileName = '/MyDirectory/BBB.txt';
...this line as the last line in my compute node.
But then it corrupts my selected data... it seems like it throws away the first part of my selected data set, and does some funnies to some other fields.

I have an MRM that I use for my output, I have an XML message on the input side, I use the following command to change to the output message set:
SET "OutputRoot".MQMD."Format" = 'TDS';
...this line just about right at the top of the compute node.

I is very funny, because the process for selecting the data did not change.

Any ideas why this happens?

Thanks for your assistance so far.
Jax
Back to top
View user's profile Send private message
Craig B
PostPosted: Wed Sep 03, 2003 5:33 am    Post subject: Reply with quote

Partisan

Joined: 18 Jun 2003
Posts: 316
Location: UK

Hi,

Can you be more specific about your scenario and show what the data looks like before you added the statement to change the filename? Then what it looks like with this statement in?

The first point to note is that the MQMD.Format field does not set the TDS physical format for an MRM parser, and this maybe causing your problems. The Format field in the MQMD is used to specify the format of the data that follows the MQMD, be it a header or a message body. This field is used by base MQSeries so it knows how to data convert the MQSeries message contents. The field you need to set in the message flow to change you message to a TDS message is :

Code:

SET OutputRoot.Properties.MessageFormat = 'TDS';


...assuming the identifier of your TDS wire format in the messageSet is 'TDS'.

Can you make this change and see if this helps your scenario. If it does not, can you provide further details on how the data changes when you change the filename field in the WKSPACE folder?
_________________
Regards
Craig
Back to top
View user's profile Send private message
jax
PostPosted: Wed Sep 03, 2003 10:25 pm    Post subject: Reply with quote

Novice

Joined: 10 Jul 2003
Posts: 12
Location: South Africa

Craig,
...hope I'm not going to drive you crazy with this...
here's the details of what I have:
1. I have an XML message on the Input node, mapped to a Message Set, rather elementary XML that simply puts the time on the Input queue:
<?xml version='1.0' encoding='UTF-8'?>
<CCB>
<ExtractDate>Wed Sep 03 16:14:40 GMT+02:00 2003</ExtractDate>
</CCB>


This is simply used as trigger to start the Compute Node.

2. Compute Node:
I have the Input MRM (for the XML)

Because I need to put out a CWF Message, I use the following code:

SET "OutputRoot".MQMD."Format" = 'TDS';

... this is where you suggested that I use this line:
SET OutputRoot.Properties.MessageFormat = 'TDS';
But when I replace it with the latter, I get the following error in my compute node:
Quote:
Message does not contain a valid MQMD


My compute node simpy does a select from the database with a passthru statement:

Code:
  passthru('SELECT
      RPAD(''CLIENT'',7,'' '')                   "RecordId",
      RPAD('' '',6,'' '')                        "TransxId",
      LPAD(54,4,''0'')                         "CompanyNumber",
      LPAD(BMMR.MEMBERSHIP_NUMBER,13,''0'')    "ClientNumber",
      LPAD(0,2,''0'')                          "ClientProvince",
      LPAD(0,2,''0'')                          "ClientRegion"
  FROM  MDS_BACK_END_MMR_TEMPS BMMR
  WHERE BMMR.CONTRIB_TYPE IN (''C'',''S'')
  AND     BMMR.EFFECTIVE_DATE IN (''200207'')
  AND     BMMR.PSCHEME = ''MCD''


Then I have a simple loop to get the data mapped to the MRM:

Code:
  WHILE A <= CARDINALITY(Environment.Results[]) DO
    SET "OutputRoot"."MRM"."MESSAGE_ELEMENT"[A]."RECORD_ID_1" = Environment.Results[A].RecordId;
    SET "OutputRoot"."MRM"."MESSAGE_ELEMENT"[A]."TRANSX_ID_1" = Environment.Results[A].TransxId;
    SET "OutputRoot"."MRM"."MESSAGE_ELEMENT"[A]."COMPANY_NUMBER_1" = Environment.Results[A].CompanyNumber;
    SET "OutputRoot"."MRM"."MESSAGE_ELEMENT"[A]."CLIENT_NUMBER" = Environment.Results[A].ClientNumber;
    SET "OutputRoot"."MRM"."MESSAGE_ELEMENT"[A]."CLIENT_PROVINCE" = Environment.Results[A].ClientProvince;
    SET "OutputRoot"."MRM"."MESSAGE_ELEMENT"[A]."CLIENT_REGION" = Environment.Results[A].ClientRegion;
    SET A=A+1;
  END WHILE;


The very last line in the Compute Node has this statement:
Code:
  SET OutputRoot.WKSPACE.FTPSend.FileName = '/bzzz/BBB.txt';

This line does change my file Name to be 'BBB.txt', it does write the file to the FTP Directory,
but it does the following with my data:

Code:
                              0000
CLIENT       005400147004999380000
CLIENT       005400147005016370000
If I exclude this line and let the FTP Node dictate what the file name should be, it works fine, and my data looks like this, which is correct:

Code:
CLIENT       005400143004118590000
CLIENT       005400251015820790000
CLIENT       005400147005000850000


I am sure the key to the solution is in the reply you sent on the line:
SET OutputRoot.Properties.MessageFormat = 'TDS';
...and the error that I got from it confirms this.
The question is, how can I set up the MRM to get past the error:
Quote:
Message does not contain a valid MQMD


If you have anything else that I can try, please tell me.

And thank you for the help so far, Craig

jax
Back to top
View user's profile Send private message
kirani
PostPosted: Wed Sep 03, 2003 10:34 pm    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

Jax,
I believe you are missing "Copy Message Headers" in your compute node. Also, if you are using MRM to format your output message then you will need following lines of code in your compute node,
Code:

SET OutputRoot.Properties.MessageFormat = 'TDS';
SET OutputRoot.Properties.MessageSet = 'DXXXX'; -- Your message set Identifier
SET OutputRoot.Properties.MessageType = 'm_XXXX'; -- Your message name

_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
jax
PostPosted: Wed Sep 03, 2003 11:10 pm    Post subject: Reply with quote

Novice

Joined: 10 Jul 2003
Posts: 12
Location: South Africa

Kirani,
Thanks for your quick reponse.
I have changed the Compute node as you suggested. This is what i have in my Compute Node, right at the top:

Code:
DECLARE C INTEGER;
SET C = CARDINALITY(InputRoot.*[]);
DECLARE I INTEGER;
SET I = 1;
WHILE I < C DO
   SET OutputRoot.*[I] = InputRoot.*[I];
   SET I=I+1;
END WHILE;
SET OutputRoot.Properties.MessageSet = 'DTI47J40BC001';
SET OutputRoot.Properties.MessageType = 'CCB_MESSAGE';


...then I have the following line of code that changes the message format:

Code:
  SET OutputRoot.Properties.MessageFormat = 'TDS';


following this line, I have the SQL Select, and then the loop to write the data to my Output MRM.

But still my data looks like this if I want to change the FTP file name in my Compute Node:

Last line in my Compute node:

Code:
SET OutputRoot.WKSPACE.FTPSend.FileName = '/bzzz/BBB.txt';


... this is waht I get in the text file:

Code:
                              0000
CLIENT       005400147004999380000
CLIENT       005400147005016370000


...as opposed to the following if I let the FTPNode Properties dictate the file name as part of its properties:

Code:
CLIENT       005400143004118590000
CLIENT       005400251015820790000
CLIENT       005400147005000850000


I don't understand, could it be a bug in the FTP Node?

Please have a look at this and PLEASE help if you can.

Thanks
Jax
Back to top
View user's profile Send private message
jax
PostPosted: Fri Sep 05, 2003 3:15 am    Post subject: Reply with quote

Novice

Joined: 10 Jul 2003
Posts: 12
Location: South Africa

Guys,
I have solved my FTP problem. I have tested my message flow in DEBUG mode (the emphasis on the ...BUG part of it) and this is exactly where the bug is...

If I deploy my message flow in DEBUG, it creates my file with data missing, as in:
Code:
                              0000
CLIENT       005400147004999380000
CLIENT       005400147005016370000


...but, without changing anything, just pushing the flow outside debug, I get the following:

Code:
CLIENT       005400143004118590000
CLIENT       005400251015820790000
CLIENT       005400147005000850000


...wonderful, isn't it?

So for all you out there that intend on using the FTP Send Node(ia73), please be aware of this, it can potentially drive you crazy.

Thank you guys, for your efforts in solving the problem, apart from this bug, you did point me in the right direction with the suggestions you made.
jax
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » FTPSend Problems
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.