MQ Connector Usage in an always-on Job

Dedicated to DataStage and DataStage TX editions featuring IBM<sup>®</sup> Service-Oriented Architectures.

Moderators: chulett, rschirm

raghav_ds
Premium Member
Premium Member
Posts: 40
Joined: Wed May 04, 2011 2:21 am

Post by raghav_ds »

Initially, we tried the option of logging the messages to a database.

Now we are trying to implement, the full functionality which reads the message from an MQ, writes to a db2 table and then deletes the message from the source queue and also send a succesful message on a different queue if the message is logged succesfully.

for this, i am trying using a MQ connector and DTS stage job. When I run the Job, the job is failing with the following error.
Failed to open MQ server library, dlopen() method call failed with error code: 2, error message: 'No such file or directory'
How to do add dlopen() method. MQ connector is working properly in the project. As per my understaning dlopen() is an MQ specific method and nothing to do with the DataStage. if we configure an MQ as target, the job works fine.
Do we need any extra files at DataStage server?

Here are the details of the Job:
step 1:
Source: MQ Queue (Message will not be deleted.) Read two columns Message_Column=entire message (Varchar 2000)
DST_MessageID = (Data Element = WSMQ.MSGID) binary 24.
Tried with MQ.MSGID but not succesfull.

Step 2:
The data is given to an xml input satge and the xml is parsed and individual columns are parsed. AT this step we have individual columns and DST_MessageID

Step 3:
Lookup stage to do a reference. Based on the reference data. reference data can have multiple values for same message and so we can multiple rows for each request.

Step4:
DTS Stage, which will update the database and delte the message from the queue. We need to send a reply message also.
raghav_ds
Premium Member
Premium Member
Posts: 40
Joined: Wed May 04, 2011 2:21 am

Post by raghav_ds »

some information on dlopen() method I found in internet:

The function dlopen() loads the dynamic library file named by the null-terminated string filename and returns an opaque "handle" for the dynamic library. If filename is NULL, then the returned handle is for the main program. If filename contains a slash ("/"), then it is interpreted as a (relative or absolute) pathname.
Post Reply