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 » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » MQ Workflow Pure Java API Query

Post new topic  Reply to topic
 MQ Workflow Pure Java API Query « View previous topic :: View next topic » 
Author Message
spprash
PostPosted: Mon Sep 19, 2005 4:37 pm    Post subject: MQ Workflow Pure Java API Query Reply with quote

Apprentice

Joined: 29 Dec 2002
Posts: 25

Our application used Workflow 3.4 and connected using LOC_LOCATOR Policy. We are trying to eliminate JNI calls in our application and hence we have upgraded to Workflow 3.5 with support PAC (WA0C) to use the Pure Java API. The Pure Java API uses JMS mode to communicate with the Workflow Server. I have a few clarifications in this regard.
[We are using Solaris and IBM WebSphere]

1. We have created a Workflow Profile(GICDFMC) for the Workflow Server and another Workflow Profile(FMC2-This profile is a client only profile which points to the GICDFMC Server profile) for the WebClient. Our Application is a seperate J2EE Application and we have configured it to use the same FMC2 Profile to connect to the GICDFMC Server.
The fmcrc file for the FMC2 Profile is below
Configuration/FMC2/FMLConnectName=FMC2.FMCGRP2.FMCSYS2,GICDFMC
Configuration/FMC2/System=FMCSYS2
Configuration/FMC2/SystemGroup=FMCGRP2
Configuration/FMC2/MQQueueManager=GICDFMC
Configuration/DefaultConfigurationID=FMC2
Configuration/FMC2/ConfigurationID=FMC2
Configuration/FMC2/MQPrefix=FMC2
Configuration/LOCALFMC/MQConnectionType=MQClient
Configuration/LOCALFMC/MQPort=5012
Configuration/LOCALFMC/MQCommunicationAddress=localhost

Do we need to create a seperate FMC3 Profile for our application or can we share the FMC2 Profile currently used by the WebClient too. Or should we use only the GICDFMC profile?

2. The Workflow Pure Java API is trying to communicate with MQ using the MQ Bindings mode(using JMS) by default. This causes the MQ DLLs to get loaded into the WebSphere Runtime(We are trying to avoid any Dlls from being used from WebSphere). To prevent this we need the Workflow Pure Java API to communicate with MQ using the Client mode. How do we make this change? We notice that MQConnectionType=MQClient is set in the fmcrc file. However the Workflow API seems to communicate using the Bindings mode and infact fails with an 'unsatisfied link error' if we dont provide the Mq java library path containing the MQ Dlls in the Library Path of the server. Also the pmap command shows that the MQ Library files are getting loaded in Websphere memory due to the bindings mode. How do we try to communicate to Workflow without letting any of the Dlls from getting loaded into WebSphere, that is in the pure Client mode.

3. Should the classpath contain the directory of the fmcrc file or should contain the directory and the fmcrc file name together. That is should it be /var/fmc/cfgs/GICDFMC or should it be /var/fmc/cfgs/GICDFMC/fmcrc

4. Will there be a performance degradation if we use the Client Mode instead of the Bindings mode. In our application we also connect to another MQ Series Queue manager using the MQ Java API's in the client mode. Is it possible to make a connection using Client Mode to Queue Manager A and another connection using Bindings mode to Queue Manager B(Workflow Queue Manager).
_________________
Prash
Back to top
View user's profile Send private message
hos
PostPosted: Tue Sep 20, 2005 12:27 am    Post subject: Reply with quote

Chevalier

Joined: 03 Feb 2002
Posts: 470

Prash,

a lot of questions at the same time
Allright, let's see:

1.
Quote:
Do we need to create a seperate FMC3 Profile for our application or can we share the FMC2 Profile currently used by the WebClient too. Or should we use only the GICDFMC profile?

Reusing FMC2 configuration is perfectly fine. It will cause the MQWF server to listen to both client applications on the same port.

2.
Quote:
How do we try to communicate to Workflow without letting any of the Dlls from getting loaded into WebSphere, that is in the pure Client mode.

It is my opinion that you already use the MQ client mode! Which DLL's are you talking about? mqjbnd05? MQ JMS still uses JNI under the covers (see JMS documentation).

3.
Quote:
Should the classpath contain the directory of the fmcrc file or should contain the directory and the fmcrc file name together

It should be the directory name, i.e. /var/fmc/cfgs/FMC2. In addition it is a good practice to place the fmcjapi.jar file into the WebInf/lib directory of your J2EE application instead of setting the CLASSPATH to it.

4. The MQ client mode does not have a performance degradation. I would not recommend to use MQ Binding (Server) interface in your environment.

You can find all these answers in the MQWF 3.6 Installation Guide, Appendix K, where the native Java API is fully integrated into the product.
Back to top
View user's profile Send private message
spprash
PostPosted: Tue Sep 20, 2005 1:39 pm    Post subject: Reply with quote

Apprentice

Joined: 29 Dec 2002
Posts: 25

Thanks a lot...

However I stil have one nagging doubt..

Quote:
How do we try to communicate to Workflow without letting any of the Dlls from getting loaded into WebSphere, that is in the pure Client mode.
>>It is my opinion that you already use the MQ client mode! Which DLL's are you talking about? mqjbnd05? MQ JMS still uses JNI under the covers (see JMS documentation).

MQ JMS Supports Bindings mode and Client mode. Bindings mode uses the mqjbnd05 dll and the client mode is a pure java mode(no JNI). I was wondering if it is possible to force the use of JMS Client mode to completely eliminate JNI calls. Also what is the significance of Configuration/LOCALFMC/MQConnectionType=MQClient in the fmcrc file. I assumed the MQClient setting in fmcrc will allow it to operate in a machine with only MQ and MQ JMS jars installed (without the need for any dlls) but invariably it loads the mqjbnd05 dll files.
_________________
Prash
Back to top
View user's profile Send private message
spprash
PostPosted: Wed Sep 21, 2005 6:22 pm    Post subject: Reply with quote

Apprentice

Joined: 29 Dec 2002
Posts: 25

We figured out the issue.
The dlls were getting loaded since the original fmcrc file had a wrong key in its configuration. This had forced the Workflow Java API to contact Workflow in JMS Bindings mode instead of in client mode. After making the correction no dlls are getting loaded.

Our original Workflow3.5 fmcrc file had a wrong key value as shown in bold below.
Configuration/FMC2/FMLConnectName=FMC2.FMCGRP2.FMCSYS2,GICDFMC
Configuration/FMC2/System=FMCSYS2
Configuration/FMC2/SystemGroup=FMCGRP2
Configuration/FMC2/MQQueueManager=GICDFMC
Configuration/DefaultConfigurationID=FMC2
Configuration/FMC2/ConfigurationID=FMC2
Configuration/FMC2/MQPrefix=FMC2
Configuration/LOCALFMC/MQConnectionType=MQClient
Configuration/LOCALFMC/MQPort=5012
Configuration/LOCALFMC/MQCommunicationAddress=localhost


We corrected the file as below
Configuration/FMC2/FMLConnectName=FMC2.FMCGRP2.FMCSYS2,GICDFMC
Configuration/FMC2/System=FMCSYS2
Configuration/FMC2/SystemGroup=FMCGRP2
Configuration/FMC2/MQQueueManager=GICDFMC
Configuration/DefaultConfigurationID=FMC2
Configuration/FMC2/ConfigurationID=FMC2
Configuration/FMC2/MQPrefix=FMC2
Configuration/FMC2/MQConnectionType=MQClient
Configuration/FMC2/MQPort=5012
Configuration/FMC2/MQCommunicationAddress=localhost



The erroneous entry LOCALFMC/MQConnectionType had caused Workflow to default to the MQServer bindings mode. After making the correction as FMC2/MQConnectionType=MQClient the JMS connections are connecting using the MQ client mode and none of the Dll files are getting loaded.
_________________
Prash
Back to top
View user's profile Send private message
hos
PostPosted: Wed Sep 21, 2005 11:40 pm    Post subject: Reply with quote

Chevalier

Joined: 03 Feb 2002
Posts: 470

Good for you - a pain for support people.
THOU SHALL NOT EDIT PROFILE FILES!!!
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 » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » MQ Workflow Pure Java API Query
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.