|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Web Client with Workflow 3.2.2 |
« View previous topic :: View next topic » |
Author |
Message
|
gowdy |
Posted: Fri Aug 03, 2001 2:45 am Post subject: |
|
|
Apprentice
Joined: 17 Jul 2001 Posts: 29 Location: Bournemouth, UK
|
Hi
Has anybody here had great levels of exposure to using the Web Client with Workflow 3.2.2?
My colleagues and I (3 in total)want to run MQSI on 1 machine, Workflow on another(my machine) and Websphere on another. All the machines are Windows NT.
The WebClient.properties file that comes with the WebClient is not very helpful to relative newbies like us, and neither is the supplied documentation. We want all the machines to look at Workflow on my machine and are a little confused about how to set this up.
The properties file says this:
Name of the MQSeries Workflow Domain represented by the Java Agent. This property is the name used by the Agent to publish its identity. For LOC_LOCATOR you can choose any name.
#AgentName=MQWFAGENT
# For the Web Client the usual setting is LOC_LOCATOR - unless there is absolutely no chance of setting up an MQSeries Workflow client on the same machine as the webserver.
There is no chance of setting up an MQSeries Workflow client on the same machine as the webserver.
# Alternatively, you can set the configuration ID to be used. If this setting is present, the locator policy setting will be forced to LOC_LOCATOR.
#AgentLocator=JNDI_LOCATOR
#AgentLocator=LOC_LOCATOR
#AgentConfiguration=FMC
We need to uncomment the JNDI_LOCATOR line but what about the FMC configuration? What changes do we need to do in Websphere?
# The factory to be used for the initial naming context and the URL where Java Agent is bound. These settings are only used when the JNDI locator policy is active.
#AgentNamingFactory=com.sun.jndi.cosnaming.CNCtxFactory
#AgentNamingFactory=com.ibm.ejs.ns.jndi.CNInitialContextFactory
#AgentProviderURL=iiop://localhost:900
Which agent naming factory do we uncomment? Do we need to change any of the values? We will be changing the providerURL to my machine's address.
Apologies for the convoluted message. If anyone can help or point us to some document(s) that may help, I would be very grateful.
Kind regards
Mark Gowdy |
|
Back to top |
|
 |
jmac |
Posted: Fri Aug 03, 2001 5:21 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
Mark:
Unfortunately, I always run local, and also use TomCat as opposed to Websphere for my development. The JNDI stuff is rather new. I don't recall there being too much info on it anywhere in V322. However, the doc for V330 has quite a bit more information. Perhaps you can get to this doc thru the IBM site (or maybe you already have it). Also there are several transaction packs that relate to the Web Client, and perhaps they might have some better doc.
Good Luck |
|
Back to top |
|
 |
gowdy |
Posted: Mon Aug 06, 2001 5:09 am Post subject: |
|
|
Apprentice
Joined: 17 Jul 2001 Posts: 29 Location: Bournemouth, UK
|
Hi
Another small problem has been found. When I try to logon using the webclient (with Websphere as the application server), I get the following error message:
--------------
FMC00100E Internal error
com.ibm.workflow.api.FmcException:
FMC38009E MQSeries Workflow API Error :
API Return Code : 100
Error Orgin : e:v322srcfmcjcesv.cxx, line 992
Error Message : FMC00100E Internal error
Nested Exception : None
at java.lang.Throwable.(Throwable.java:84)
at java.lang.Exception.(Exception.java:35)
at com.ibm.workflow.api.FmcException.(FmcException.java)
at com.ibm.workflow.api.loc.ExecutionServiceImpl.logon2(ExecutionServiceImpl.java)
at com.ibm.workflow.servlet.client.BuiltinHandler.logon(BuiltinHandler.java:620)
at java.lang.reflect.Method.invoke(Native Method)
at com.ibm.workflow.servlet.client.Util.invoke(Util.java:124)
at com.ibm.workflow.servlet.client.BuiltinHandler.execute(BuiltinHandler.java:130)
at com.ibm.workflow.servlet.client.ApplicationContextImpl.dispatch(ApplicationContextImpl.java:271)
at com.ibm.workflow.servlet.client.Main.doGet(Main.java:204)
at com.ibm.workflow.servlet.client.Main.doPost(Main.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:566)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:639)
at com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:580)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycleServlet.java:160)
at com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServlet.java:287)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycleServlet.java:105)
at com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:353)
at com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletManager.java:729)
at com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(ServletManager.java:655)
at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebApp.java:1269)
at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(WebApp.java:1106)
at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(WebApp.java:1039)
at com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebGroup.java:646)
at com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67)
at com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:155)
at com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:300)
at com.ibm.servlet.engine.oselistener.SQEventListenerImp$ServiceRunnable.run(SQEventListenerImp.java:230)
at com.ibm.servlet.engine.oselistener.SQEventListenerImp.notifySQEvent(SQEventListenerImp.java:104)
at com.ibm.servlet.engine.oselistener.serverqueue.SQEventSource.notifyEvent(SQEventSource.java:202)
at com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.notifyService(SQWrapperEventSource.java:347)
at com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.run(SQWrapperEventSource.java:216)
at com.ibm.servlet.engine.oselistener.outofproc.OutOfProcThread$CtlRunnable.run(OutOfProcThread.java:248)
at java.lang.Thread.run(Thread.java:481)
------------------
Any ideas as to where I should start looking to fix this? The only things that look odd are:
- error origin is a file on the e drive, but that is my CD-Rom drive (and there is nothing in the CD-Rom)
- the last record before an FMCException is thrown mentions ...workflow.api.loc.ExecutionServiceImpl.logon2(ExecutionServiceImpl.java). Looking at the javadoc for the webclient, there is no such sub-directory as api.loc....
Finally, is there any way to translate between the FMCException return codes and the descriptions in the javadocs for FMCException return codes(eg, FMC_ERROR_ALREADY_LOGGED_ON )?
Again, any pointers would be gratefully appreciated.
Thanks
Mark Gowdy
|
|
Back to top |
|
 |
kriersd |
Posted: Mon Jul 22, 2002 6:43 pm Post subject: |
|
|
 Master
Joined: 22 Jul 2002 Posts: 209 Location: IA, USA
|
Hi, ALL
I know this is an extremely old post but it brings back some memories that still haunt me today.
Ok. If you must use version 3.2.2 here are a few clues to get JNDI working. (Remember this is not the IBM recommended configuration for setting up the web client).
A.) Make sure you use the IBM JDK when running the agent.
B.) You will need to update the java.policy file. (See the doc)
C.) Make sure you setup the class path with the fmcojapi.jar not fmcojagt.jar.
*** NOTE ***
When we finally got this to work we thought this was the clean and best configuration. We soon were faced with another issue. Due to the fact that we only had the MQ Client on the WAS box we were running out of connections to the MQ Server every day. This forced us to have to reboot the server each and every day. NOT GOOD!!!!
SO bottom line is..
Yes, JNDI configuration is useful if you need to write some code that must interact with workflow, however, not good for the webclient configuration.
Your better off creating a "Client Concentrator" configuration where you will have an MQSeries Server installed on the WAS box and the queue managers from both the WAS server and the MQWF server are clustered. This will allow you to use the LOCAL queue manager on the WAS box to connect to the Workflow Server. This has worked flawless...
Hope someone finds this useful
Dave _________________ Dave Krier
IBM WebSphere MQ Workflow V3.4 Solution Designer |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|