Author |
Message
|
djharte |
Posted: Wed Nov 13, 2002 5:20 am Post subject: [Solved]Development Setup |
|
|
Apprentice
Joined: 02 Oct 2002 Posts: 26
|
I was wondering if someone could give me their thoughts on what is the best setup for development purposes. Thus far we have MQSeries Workflow, MQSeries server and DB2 on each developer machine (as well as IBM Developer Studio/Websphere) but we want to move as much as possible to a more powerful server.
I read that you can setup Workflow to use a remote database, so I presume that is not too much of a problem. What about MQSeries though, is it possible to install it on a seperate machine and just install the client on the developer machine.
Ideally we would like to move as much as possible to the server while still allowing a developer to modify his own workflow.
As always any help is very much appreciated.
David |
|
Back to top |
|
 |
vennela |
Posted: Wed Nov 13, 2002 5:39 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
I don't know why you want to put MQSeries on the developer's workstation but you don't have to.
When it comes to Workflow, all the developer's need is WorkFlow buildtime. Since the Buildtime database can sit on a remote machine you just need DB2 client and Workflow buildtime on the developer's machine.
We have even put the MQ jar files and Workflow jar files on a shared drive.
If you want to put standard fat client on the developer's machine then you can have MQClient installed instead of a full blown MQ Server. But I am sure you don't want to install fat client.
---
Venny |
|
Back to top |
|
 |
djharte |
Posted: Thu Nov 14, 2002 7:03 am Post subject: |
|
|
Apprentice
Joined: 02 Oct 2002 Posts: 26
|
Venny,
Thanks for the reply. Your suggestion makes complete sense and I have set about getting it setup.
However I have come accross a problem. I have setup a java agent (running in websphere 4.0 as a generic server), runtime db, builtime db client etc on a server machine and have created a web client (running in websphere) on my (developer) machine. However, I am getting the following problem, when I try to log in from the web client,
java.beans.PropertyVetoException: FMC38000E Could not locate Agent for Domain MQWFAGENT
at com.ibm.workflow.api.Agent.failureName(Agent.java:619)
at com.ibm.workflow.api.Agent.setName(Agent.java:417)
.....
However, a simple java program works, and allows me to logon to the server on my remote machine. Any ideas what the problem might be.
Cheers
David |
|
Back to top |
|
 |
vennela |
Posted: Thu Nov 14, 2002 8:33 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
David:
Do you have Web client with QueueManager or Wbe Client with MQ Client.
---
Venny |
|
Back to top |
|
 |
djharte |
Posted: Thu Nov 14, 2002 8:50 am Post subject: |
|
|
Apprentice
Joined: 02 Oct 2002 Posts: 26
|
Venny,
I have just got a basic WebClient configuration on my (devel) machine. I have MQSeries installed (from my prev setup), but its not running, (the jars are available to the webclient).
In fact I think the problem may be with my dB setup, I have installed DB2Connect and have added a remote dB, however when I start up the WebClient (via websphere) on my machine I get (on accessing the default Logon.jsp)
The username and/or password supplied is incorrect. SQLSTATE=08004
even though they have been set in webclient.properties
Database = FMCDB
DB2User = db2admin
DB2Password= db2admin
There must be something I haven't done with the db2 setup.....
Any thoughts would be appreciated.
Cheers
Dave  |
|
Back to top |
|
 |
vennela |
Posted: Thu Nov 14, 2002 9:36 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
DB2 setup on the web client has got nothing to do with Workflow.
Your MQ is not running?
That's where your problem is.
But how would your java program run then. I guess you have both MQ Client and MQ server installed on your machine.
Is your WebSphere App server started. Is the MQWF Application running.
Let us know the exact configuration.
1. Is it a stand alone setup?
2. If not, where is your Workflow Runtime DB
3. Where is your WF Server
4. Where is the WAS
---
Venny |
|
Back to top |
|
 |
djharte |
Posted: Thu Nov 14, 2002 9:57 am Post subject: |
|
|
Apprentice
Joined: 02 Oct 2002 Posts: 26
|
1) Devel Machine has
MQSeries (not running)
MQSeries WF with Web Client configured, the WebClient.properties file has the following entry :
AgentName=MQWFAGENT
AgentLocator=JNDI_LOCATOR
AgentNamingFactory=com.ibm.websphere.naming.WsnInitialContextFactory
AgentProviderURL=iiop://flinstone:900
the WebClient is running within websphere on my devel machine.
I also have DB2 Connect installed and a remote dB registered, this dB is
specified in the Webclient.properties file;
Database = FMCDB
DB2User = db2admin
DB2Password= db2admin
2) Other Windows 2000 Machine
1) MQSeries Running (FMCQM setup)
2) MQSeries FMC default configuration setup and running, with Java agent configured to run within websphere as a generic server on this machine.
3) DB2
So, from my devel machine, I want to be able to contact the WF Server on the seperate machine via JNDI.
Thanks for your help Venny .....
P.S
I was able to logon to the WF server on the "other machine" using
the following code from my devel machine :
Agent objAgent = new Agent();
Properties prop = System.getProperties();
prop.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
prop.put(Context.PROVIDER_URL, "iiop://flinstone:900");
objAgent.setLocator(Agent.JNDI_LOCATOR);
objAgent.setName("MQWFAGENT");
System.out.println("After Agent name ");
ExecutionService service = objAgent.locate("FMCGRP","FMCSYS");
System.out.println("After service located ");
service.logon2("ADMIN","password",SessionMode.DEFAULT,AbsenceIndicator.NOT_SET);
System.out.println("login done"+service.userID()); |
|
Back to top |
|
 |
vennela |
Posted: Thu Nov 14, 2002 10:24 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Quote: |
I also have DB2 Connect installed and a remote dB registered |
This shouldn't make any difference. Even if you don't catalog the DB it shouldn't matter. All you need to be worried about is your webclient.properties file. It looks ok to me as far as DB userID/password are concerned.
Your MQ on Webclient is not running? Thats where the entire problem lies. Now
On the Devel Machine:
1. Have you created a Queue Manager for the Web client. I think the config utility will prompt you for this.
2. Are you trying to use an already created Queue Manager. If you are trying to use an already created Queue Manager then is this QMGR added to the Workflow cluster (Group).
If you have allowed the config utility to create the QMGR and cluster it for you then I guess all you have to do is start the QMGR on the devel machine.
If you haven't done so and if you are not too good with MQ then I would suggest you to delete the Workflow configuration on the devel machine and create another configuration and allow the utility to create the QMGR for you.
========
The prgram that you have posted: Did you successfully run it on the Devel box or on the
Quote: |
2) Other Windows 2000 Machine
|
. I am pretty sure it is on the latter.
---
Venny |
|
Back to top |
|
 |
djharte |
Posted: Thu Nov 14, 2002 10:51 am Post subject: |
|
|
Apprentice
Joined: 02 Oct 2002 Posts: 26
|
Venny,
Maybe I have the wrong end of the stick, but I want my WebClient to run independent of MQSeries Workflow and MQSeries, from the docs :
The following components are needed on the Java API client machine:
The following components are needed on the Java API client machine:
A Java Runtime Environment (JRE) that supports RMI-IIOP. For example, IBM JDK 1.2 and later, or Sun JDK 1.3 and later.
The MQSeries Workflow Java API classes. For example, fmcojapi.jar, or fmcojagt.jar which is a strict superset of the classes contained in fmcojapi.jar.
I have all of the above on my devel machine and the WebClient.properties file is configured. So, will the WebClient not
1) Lookup the naming server on the "other machine"
2) Locate the Java Agent on the "other machine"
3) Allow interaction with the WF server on the "other machine"
??
Cheers
Dave
ps: That program was run from the developer machine ! |
|
Back to top |
|
 |
djharte |
Posted: Thu Nov 14, 2002 10:53 am Post subject: |
|
|
Apprentice
Joined: 02 Oct 2002 Posts: 26
|
My Web Client log file gives the following, it looks like it can't find the system and group :
Servlet initialized.
2002-11-14 19:03:04.218 Servlet.Engine.Transports:10: logon called.
2002-11-14 19:03:04.218 Servlet.Engine.Transports:10: userID: ADMIN
2002-11-14 19:03:04.218 Servlet.Engine.Transports:10: mode: null
2002-11-14 19:03:04.218 Servlet.Engine.Transports:9: logon called.
2002-11-14 19:03:04.234 Servlet.Engine.Transports:9: userID: ADMIN
2002-11-14 19:03:04.234 Servlet.Engine.Transports:9: mode: null
2002-11-14 19:03:04.250 Servlet.Engine.Transports:9: SessionTable: key com.ibm.workflow.servlet.client.SessionContext not found in HttpSession C2HAKCJ3QPQHUYVF15BYPMQ
2002-11-14 19:03:04.250 Servlet.Engine.Transports:9: Locating system '' in group ''.
2002-11-14 19:03:04.250 Servlet.Engine.Transports:9: Binding agent 'MQWFAGENT' using JNDI_LOCATOR
2002-11-14 19:03:04.250 Servlet.Engine.Transports:10: SessionTable: key com.ibm.workflow.servlet.client.SessionContext not found in HttpSession C2HAKCJ3QPQHUYVF15BYPMQ
2002-11-14 19:03:04.250 Servlet.Engine.Transports:10: Locating system '' in group ''.
2002-11-14 19:03:04.453 Servlet.Engine.Transports:10: Binding agent 'MQWFAGENT' using JNDI_LOCATOR
2002-11-14 19:03:04.546 Servlet.Engine.Transports:9: doGet (logon): com.ibm.workflow.servlet.client.ClientException
java.beans.PropertyVetoException: FMC38000E Could not locate Agent for Domain MQWFAGENT
at com.ibm.workflow.api.Agent.failureName(Agent.java:619)
at com.ibm.workflow.api.Agent.setName(Agent.java:417)
at com.ibm.workflow.servlet.client.ApplicationContextImpl.getAgent(ApplicationContextImpl.java:422)
at com.ibm.workflow.servlet.client.ApplicationContextImpl.locateService(ApplicationContextImpl.java:451)
at com.ibm.workflow.servlet.client.BuiltinHandler.logon(BuiltinHandler.java:629)
at java.lang.reflect.Method.invoke(Native Method) ..... |
|
Back to top |
|
 |
vennela |
Posted: Thu Nov 14, 2002 11:08 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Dave:
You can't do that.
What do you mean "independent of MQSeries and Workflow". Inorder to have your web client running you MUST have these things for sure
1. MQWF server up and running (This implies DB2 should be running and QMGR on the WF server is running)
2. On the box where Web client is installed:
1. QMGR should be running
2. WAS should be running.
I will give you a simple scenario and you should be able to figure out why all of the above are needed.
When you logon to the Web client Logon.jsp page (this page shows up only if WAS is running) and give USERID/Password an MQ message is sent from the Web client machine (undercovers by the QMGR on Webclient to the QMGR on Workflow server ) to the Workflow server. This is validated and sent back as an MQ message.
You are transperant to all of this but as I have already mentioned those should be running if you want to have the Web client running.
---
Venny |
|
Back to top |
|
 |
vennela |
Posted: Thu Nov 14, 2002 11:12 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Oh OK.
You are talking about RMI-IIOP. It's a different ball game then. I am not very much aware of this Java Agent. But why do you want to go for RMI-IIOP way. It's deprecated.
---
Venny |
|
Back to top |
|
 |
djharte |
Posted: Thu Nov 14, 2002 11:42 am Post subject: |
|
|
Apprentice
Joined: 02 Oct 2002 Posts: 26
|
Well, RMI via JNDI which is not depreciated .... I am really getting confused now, I thought that was the job of the Java CORBA agent, to field requests from clients ...... Nearly ready to throw the towel in ! |
|
Back to top |
|
 |
vennela |
Posted: Thu Nov 14, 2002 12:19 pm Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
RMI is deprecated. Also from the installation guide
Quote: |
Java RMI Agents should only be used for prototyping. They are currently not suited for production purposes.
|
So I would suggest you to seriously look into LOCAL bindings and JNDI.
---
Venny |
|
Back to top |
|
 |
Ratan |
Posted: Thu Nov 14, 2002 12:54 pm Post subject: |
|
|
 Grand Master
Joined: 18 Jul 2002 Posts: 1245
|
Dave, here is my 2 cents about your config, You need to have the java agent running. I am not very clear about this architecture, so am practically of no much to you.
Venny is right, you should consider using local binding on your devel machines. that is the best configuration.
-Laze. |
|
Back to top |
|
 |
|