Resolution History
21-APR-04 13:58:48 GMT
Can you easily recover from, bypass or work around the problem? = NO Does your system or application continue normally after the problem occurs? = NO Are the standard features of the system or application still available; is the loss of s ervice minor? = NO ### Detailed Problem Statement: ### Need details to connect to a JMS queue on a 10g server from another machine,but do not know all the required information, especially the URL (or JavaNamingProviderURL). Can get a connection but appears to be the wrong queue! ### What were you trying to accomplish when the problem occurred? ### OC4J JMS connection to queues on a Oracle 10g Server from a different machine running a standalone java program. ### The step-by-step actions which preceded the problem: ### Please read TAR 3656046.996 as it provides exact history. ### Has this ever worked? ### No ### Can you reproduce the problem at will? ### Yes ### Reproducible on other platforms, systems, environments? ### No ### Known recent changes to your computer environment: ### no Contact me via : E-mail -> Michael.Wever@bokklubbene.no
21-APR-04 14:04:59 GMT
New info : The client and the server do not appear to be accessing the same oc4j jms queue! <br/> I cannot get any messages across the two program?! Code to access the queues in the server: Context jndiContext = new InitialContext(); QueueConnectionFactory connectionFactory = (QueueConnectionFactory)jndiContext.lookup("jms/QueueConnectionFactory"); Queue dest = (Queue)jndiContext.lookup("jms/SmsOutQueue"); Queue recv = (Queue)jndiContext.lookup("jms/SmsInQueue"); Code to send messages on the server: QueueConnection connection = connectionFactory.createQueueConnection(); QueueSession session = connection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE); QueueSender sender = session.createSender(dest); TextMessage message = session.createTextMessage(); message.setText(text); sender.send(message); sender.send(session.createMessage()); Jndi properties on the client to read queues: <JMSInterfaceParameters> <UseJNDI>true</UseJNDI> <JavaNamingProviderURL>opmn:ormi://samboapp-1.bokklubbene.no:6003:home</JavaNamingProviderURL> <JavaNamingFactoryInitial>com.evermind.server.ApplicationClientInitialContextFacto ry</JavaNamingFactoryInitial> <JavaNamingSecurityPrincipal>admin</JavaNamingSecurityPrincipal> <JavaNamingSecurityCredentials>manager1</JavaNamingSecurityCredentials> <QueueConnectionFactoryName>jms/QueueConnectionFactory</QueueConnectionFactoryName> <ReadQueue>jms/SmsOutQueue</ReadQueue> <WriteQueue>jms/SmsInQueue</WriteQueue> </JMSInterfaceParameters> Is it possible that there is a mismatch of queues, and infact 4 queues exist instead of 2?
21-APR-04 14:06:32 GMT
New info : my $ORACLE_HOME/j2ee/home/config/jms.xml has: <queue name="SMS to Datek Queue" location="jms/SmsOutQueue"> <description>Bokklubbene to Datek Queue</description> </queue> <queue name="Datek to SMS Queue" location="jms/SmsInQueue"> <description>Datek to Bokklubbene Queue</description> </queue>
21-APR-04 14:06:55 GMT
New info : I'm browsing the queues (which always returns nothing) with: <br/> QueueConnection connection = connectionFactory.createQueueConnection(); QueueSession session = connection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE); Enumeration en1 = session.createBrowser(dest).getEnumeration(); System.out.println("jms/SmsOutQueue contains:"); while( en1.hasMoreElements() ){ Message msg = (Message)en1.nextElement(); System.out.println(msg.toString()); System.out.println(((TextMessage)msg).getText()); }
21-APR-04 14:11:04 GMT
New info : Is this a new installation of ias? 10g, no, it has been in use for a month now with numerous other web application deployed on it working fine. Can you cut & paste teh output of 'dcmctl getstate -v -d'. [oracle@samboapp-1 bin]$ ./dcmctl getstate -v -d Current State for Instance:ias.samboapp-1 Component Type Up Status In Sync Status ================================================================================ 1 home OC4J Up True 2 HTTP_Server HTTP_Server Up True Does the problem still occur after you do a complete start & stop of ias instan ce? Yes. Is this a standalone instance of ias or is associated with an infrastructure? Infrastructure. (Database listeners, and another server running portal application). Does this machine have a static ip address? Yes.
21-APR-04 14:15:50 GMT
New info : Please do not ask me to try ODC. It does not work on linux machines.
21-APR-04 14:47:41 GMT
This seems to be a spin off from 3656046.996
21-APR-04 14:48:50 GMT
Hi Michael,
Thank
you for using MetaLink. We are currently reviewing/researching the
situation and will update the SR / call you as soon as we have relevant
in formation. Thank you for your patience.
Best Regards, Prag Oracle Support Services
STATUS ======= @WIP -- Work In Progress
21-APR-04 16:45:59 GMT
Hi Michael,
It is not possible to have two Queues with the same name.
Can you read the messages queued in the server from server itself rather than from cli ent. This will prove in the first place if message is queued. If not we need to investigate this.
Secondly
do you have any jms.xml file on the client side or any other
configuration file which has queueConnectionfactory details.
What you are doing is pretty much the same as the demo which is sending & receiving mess ages from standalone java code. It is only that you are connecting to a differe nt server & this could be accomplished.
Regards, Prag EMEA IP Support
21-APR-04 16:46:12 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
21-APR-04 16:54:55 GMT
New info : There are messages in the queues on the server, and they can be browsed from the server. The queues are called "jms/SmsInQueue" and "jms/SmsOutQueue". From the client connection seems to occur without problems, but there is no crossover of messages. That is, it is like there are separate queues and the client can only browse the messages it itself puts into the queues, and the server can only browse messages it places into the queues.
21-APR-04 16:59:48 GMT
New info : there is a jms.xml (j2ee/home/config/) under the standalone oc4j on
the client machine but it does not describe the specified queues, it is the default file that comes from oracle.
21-APR-04 17:21:57 GMT
New info : I am available 24-7 to help prioritise this TAR. It is quite serious
and has already set the project's deadline back 2 months.
22-APR-04 08:20:41 GMT
ok, thanks for the update, investigating.. Will escalate this RS as the original one was escalated & this SR is a branch off it
22-APR-04 11:42:48 GMT
New info : I submitted the client program's log files to the third party
company and recieved the following reply: The exception below signals that you cannot connect to your jms server. There should be NO exceptions. The connection fails actually when it does the naming lookup on the queues, not when trying to connect to the actual queues. At least that's what seems to be the case to me :) Lars Ove The exception was: 15:04.52.484 21.04.2004 SEVERE IF-HANDLER Exception occurred during connection: Lookup error: java.net.ConnectException: Connection timed out; nested exception is: <LF><TAB>java.net.ConnectException: Connection timed outjavax.naming.NamingException: Lookup error: java.net.ConnectException: Connection timed out; nested exception is: <LF><TAB>java.net.ConnectException: Connection timed out [Root exception is java.net.ConnectException: Connection timed out] javax.naming.NamingException: Lookup error: java.net.ConnectException: Connection timed out; nested exception is: java.net.ConnectException: Connection timed out [Root exception is java.net.ConnectException: Connection timed out] at com.evermind.server.rmi.RMIContext.lookup(RMIContext.java:153) at com.evermind.naming.FilterContext.lookup(FilterContext.java:138) at com.evermind.naming.SubFilterContext.lookup(SubFilterContext.java:55) at javax.naming.InitialContext.lookup(InitialContext.java:347) at com.datek.cpas5.interfaceHandler.JMSInterfaceHandler.initializeConnectio n(JMSInterfaceHandler.java:388) at com.datek.cpas5.interfaceHandler.JMSInterfaceHandler.access$200(JMSInter faceHandler.java:36) at com.datek.cpas5.interfaceHandler.JMSInterfaceHandler$ConnectionWorker.ma keConnection(JMSInterfaceHandler.java:780) at com.datek.cpas5.interfaceHandler.JMSInterfaceHandler$ConnectionWorker.ru n(JMSInterfaceHandler.java:742) at java.lang.Thread.run(Thread.java:534) Caused by: java.net.ConnectException: Connection timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158) at java.net.Socket.connect(Socket.java:452) at java.net.Socket.connect(Socket.java:402) at java.net.Socket.<init>(Socket.java:309) at java.net.Socket.<init>(Socket.java:153) at Text continued in next action...
22-APR-04 11:43:51 GMT
Text continued from previous action...
com.evermind.server.rmi.RMIConnection.connect(RMIConnection.java:2209) at com.evermind.server.rmi.RMIConnection.lookup(RMIConnection.java:1685) at com.evermind.server.rmi.RMIServer.lookup(RMIServer.java:727) at com.evermind.server.rmi.RMIContext.lookup(RMIContext.java:134) ... 8 more
22-APR-04 15:33:39 GMT
Hi Michael,
Please
provide your contact no for the evening. We are in the process of
setting up a testcase here so that we can send it to you.
Thanks, Prag
22-APR-04 15:33:45 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
22-APR-04 15:42:06 GMT
New info : Work phone: +47 2202 2067 After Hours: +47 92221689 (I need to be either at work or at home to give decent feedback to any phone call. At home I'll need 10-15 minutes to connect to work. )
22-APR-04 15:52:50 GMT
ok, thanks for the update
22-APR-04 18:19:58 GMT
Michael,
I am working on getting you a test application to confirm this is working. I will provide the update here as to where the testcase can be downloaded from and what steps are needed to use.
Regards, Andy
@WIP
22-APR-04 18:20:05 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
23-APR-04 03:49:24 GMT
Hi,
Since
you are using a third party client which we are unfamiliar with, I have
produced a test case to validate for my self that the functionality is
worki ng correctly. I have uploaded this test case to the following anonymous FTP loca tion:
ftp://oracle-ftp.us.oracle.com/server/outgoing/3682720.994/OJMS_CLIENT_SERVER.zip
The zip file contains a self contained workspace for JDeveloper. It will unpack to it's own directory "OJMS_CLIENT_SERVER". If you are a user of our JDeveloper 9.0.5.1 product (freely downloadable from Oracle Technology Network) then you can open up the OJMS_CLIENT_SERVER.jws in JDeveloper.
If you are not a user of JDeveloper, then the "OJMS_CLIENT_SERVER_APP/deploy" folder contains a pre-built EAR file, that you should be able to deploy without making any changes . For deployment you can use Enterprise Manager or "dcmctl" command line:
dcmctl deployApplication -a OJMS_CLIENT_SERVER_APP -f OJMS_CLIENT_SERVER_APP.ear -co <OC4J Instance> -v -d
Before
deploying, you will need to define the following queue in the
$ORACLE_HOME/j2ee/<instance name>/config/jms.xml file:
<queue name="OJMS_CLIENT_SERVER_Q" location="jms/OJMS_CLIENT_SERVER_Q"> <description>QUEUE FOR OJMS_CLIENT_SERVER_APP</description> </queue>
This can be done at the top of the file, immediately inside the <jms-server> tag.
In case you are not yet familiar with the Centralized Management Features of OC4J, after changing configuration files in the file system you would need to propagate the changed file back into the DCM repository:
% dcmctl updateConfig -co <OC4J Instance Name> -v -d
You should then restart the modified OC4J instance to pick up the changes:
% opmnctl stopproc process-type=<OC4J Instance Name> % opmnctl startproc process-type=<OC4J Instance Name>
After this, you should be able to reach the following URL's:
(a) http://server:port/jmstest/browseQueue - browses the queue without removing items from it
(b) http://server:port/jmstest/submitMessage - is a servlet whose doGet() method displays a form that allows you to enter an ID property and text for a JMS message. The form submits (via POST) back to the same servlet, whos doPost() method JMS directly to submit the J MS Message
(c) http://server:port/jmstest/submitMessageToEJB - same as above except the doPost() method retrieves a local reference to a Stateless Session B ean (SLSB) facade which creates the JMS Message.
So you can post a few message and browser them server side.
Now, to match up with your concerns about the client not seeing the same queue contents, I have written a remote client. Again, if you use JDeveloper it it really simple to run it by right clicking on the "JMSQueueConsumer.java" in the "CLIENT" project. Then you can click on "run". Before doing so, you will need to update "jndi.properties" to fit your location.
If you do not use JDeveloper, you can still use the precompiled class file "JMS QueueConsumer.class" but will need to setup your environment to run it (same requirements as in the preceeding service request). You should ensure that the clas spath picks up the "jndi.properties", "application-client.xml" and "orion-applic ation-client.xml" files.
The
client will run until interrupted and for each message that gets placed
on the queue it will consume it and print it out to stdout , for example:
JMSQueueConsumer::onMessage()::CALLED; TIME=22-Apr-2004@11:43:21:966
JMSQueueConsumer::################ JMSQueueConsumer::### JMSQueueConsumer::### MESSAGE JMSQueueConsumer::### ======= JMSQueueConsumer::### ID: 1 JMSQueueConsumer::### SUBMIT_TIME: 22-Apr-2004@11:39:37:321 JMSQueueConsumer::### TEXT: Test OJMS Message JMSQueueConsumer::### JMSQueueConsumer::################
You
can mix and match creating messages with the servlet and browsing. This
can be done while the client is running (if so, the browse serv let won;t get a chance to catch anything in the queue).
I would like you to use this as a test harness to confirm that your environment works the same as ours.
23-APR-04 04:33:42 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
23-APR-04 12:38:54 GMT
Hello,
Also,
based on my exposure to your other service request and my perception
that your are coming to grips with the flexibility of OC4J when running
as a component of Application Server (as compared to the simpler "standalone" OC4J t hat is installed by unzipping a file), I believe it may help you to read:
245805.1 BEST PRACTICES FOR MANAGING OC4J DYNAMIC PORT ALLOCATIONS VIA OPMN
I am still curious if you have multiple JVM's running for the same OC4J instance, whic h would be the only reason that you would need to use the "opmn:ormi" lookup syn tax. In the event that there are multiple OC4J instances, each instance would (u nless configured appropriately) have it's own queue. I just want to rule out any complications of this nature that might explain why you can browse the queues o n the server but the client does not see the messages.
Also, I am a little confused by your description of the problem (that you can see the message queue on t he server, but not from the remote client) and the view of your third party supp ort team, that you are not able to connect to the server, which seem to be contr adicting to some extent.
As we did in the other service request, I would recommend as a first step simplifying by removing "opmn:ormi". You should be able to do this by using the information in 245805.1 to control the port assignments. To show the current port assignments for your OC4J instance, you can even use:
% $ORACLE_HOME/opmn/bin/opmnctl status -l
which will list rows similar to:
OC4J | ANDY | 27232 | Alive | 512229555 | 109864 | 9:52:45 | jms:5067,rmi:5034,ajp:5000
Then, change your third party configuration from:
<JavaNamingProviderURL>opmn:ormi://samboapp-1.bokklubbene.no:6003:home</JavaNamingProviderURL>
to using the rmi port:
<JavaNamingProviderURL>ormi://samboapp-1.bokklubbene.no:5034:home</JavaNamingProviderURL>
Regards, Andy Parkman
23-APR-04 12:52:19 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
23-APR-04 14:59:13 GMT
I tried to reach you on the contact details provided:
> New info : Work phone: +47 2202 2067 > After Hours: +47 92221689
but did not receive a reply on the work number and did not understand the answer message (German) on the after hours number. In absence of a response to the updates made yesterday, can you indicate if this issue should be reduced in severity to P2?
Regards, Andy Parkman
@CUS
23-APR-04 14:59:18 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
23-APR-04 15:21:55 GMT
New info : Unfortunately I am busy until middle of next week. Will provide
feedback then... The phone details are correct. And it's norwegian :=)
23-APR-04 16:12:08 GMT
Thanks for the update. Reducing the severity of this issue until you are able to work on it, so we don't chase you for updates.
Regards, Andy
@SLP:4
23-APR-04 16:12:49 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
27-APR-04 16:29:50 GMT
TAR has passed review date of: 27-APR-2004
27-APR-04 18:13:13 GMT
Hi Michael,
Please update the SR with any latest progress.
Thanks, Prag
27-APR-04 18:13:29 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
05-MAY-04 08:58:56 GMT
Hi Michael,
We
still haven't heard back from you on this issue. Please provide the
requested information as soon as possible to avoid this SR from being
inacti vated. We will keep this SR open one more day.
Thank You, Prag
STATUS ======= @CUS -- Waiting for Customer Update
05-MAY-04 09:18:10 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
05-MAY-04 09:22:41 GMT
Open Service Request (SR or TAR) Review Performed Service Request Escalation Update (status check):
As
the priority of this Service Request has been lowered and there has
been no response from the customer the escalation status should be r eviewed. Can this now be de-escalated? And closed? Mike Nicholls Support Group Manager OSS - Internet Products
05-MAY-04 09:24:15 GMT
Tried calling the customer on +47 2202 2067 - got a receptionist who could not l ocate Michael.
05-MAY-04 09:28:25 GMT
Michael, As
the priority of this Service Request has been lowered and there has
been no response from you for several days can this Service Request now
be de-es calated and possibly closed? Regards Mike Nicholls Support Group Manager OSS - Internet Products
10-MAY-04 12:54:00 GMT
New info : Sorry, we have been busy with the deployment of another project. The
priority of this TAR can be lowered until further noticed by not closed please.
10-MAY-04 13:34:03 GMT
ok, i shall de-escalate this SR as your priorities are now changed. Also I can l eave this SR opened only for 2 weeks time, if you think that it will not be feas ible for you to get back to us, I suggest you close this & raise a new SR when n eeded and then refer to this oen if appropriate.
Thanks, Prag
10-MAY-04 13:34:16 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
18-MAY-04 10:14:19 GMT
UPDATE =======
Hi Michael,
I
haven't heard back from you, so I assume that this is no longer an
issue or the issue has been resolved. If this is not the case, pl ease update the SR as soon as possible with the requested information and I will be glad to assist you further. Otherwise, no update is necessary and the SR wil l automatically close after two weeks.
Best Regards, Prag Oracle Support Services
STATUS =======
Inactivated -- Pending Customer Response
01-JUN-04 07:23:39 GMT
New info : Issue hasn't been solved yet, still working on it, unfortunately I have a few other showstoppers to solve first.
02-JUN-04 09:11:44 GMT
ok will wait on furthe rinput from customer
10-JUN-04 09:04:42 GMT
hi,
Please let us know if you need any further assistance on this SR.
Thanks, Prag
10-JUN-04 09:04:52 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
14-JUN-04 07:57:43 GMT
New info : next week...
14-JUN-04 08:31:38 GMT
ok, thanks
23-JUN-04 12:20:18 GMT
New info : Ok, i'm finally back onto this. Sorry for the very long delay. I have read through the TAR again, and the current status is: The client reads: <JavaNamingProviderURL>ormi://samboapp-1.bokklubbene.no:3201:home</JavaNamingPr o viderURL> and the server's opmnctl output is: OC4J | home | 21627 | Alive | 419168733 | 384376 | 172:02:14 | jms:3701,rmi:3201,ajp:3301 The server is a Oracle10g installation (not OC4J standalone). The client is making connections to telenor and netcom successfully. Now when I run, the client outputs: -- listing properties -- java.naming.factory.initial=com.evermind.server.ApplicationClient... useJndi=true java.naming.security.principal=admin queueConnectionFactory=jms/QueueConnectionFactory outputQueue=jms/SmsOutQueue java.naming.provider.url=ormi://samboapp-1.bokklubbene.no:3201:home inputQueue=jms/SmsInQueue jmsValidity=86400000 java.naming.security.credentials=manager1 but dumps these errors every so often: Exception occurred during connection: Lookup error: java.net.ConnectException: Connection timed out; nested exception is: <LF><TAB>java.net.ConnectException: Connection timed outjavax.naming.NamingException: Lookup error: java.net.ConnectException: Connection timed out; nested exception is: <LF><TAB>java.net.ConnectException: Connection timed out [Root exception is java.net.ConnectException: Connection timed out] javax.naming.NamingException: Lookup error: java.net.ConnectException: Connection timed out; nested exception is: java.net.ConnectException: Connection timed out [Root exception is
java.net.ConnectException: Connection timed out] at com.evermind.server.rmi.RMIContext.lookup(RMIContext.java:153) at com.evermind.naming.FilterContext.lookup(FilterContext.java:138) at com.evermind.naming.SubFilterContext.lookup(SubFilterContext.java:55) at javax.naming.InitialContext.lookup(InitialContext.java:347) at com.datek.cpas5.interfaceHandler.JMSInterfaceHandler.initializeConnection(JMSIn t erfaceHandler.java:388) at com.datek.cpas5.interfaceHandler.JMSInterfaceHandler.access$200(JMSInterfaceHan d ler.java:36) at com.datek.cpas5.interfaceHandler.JMSInterfaceHandler$ConnectionWorker.makeConne c tion(JMSInterfaceHandler.java:780) at com.datek.cpas5.interfaceHandler.JMSInterfaceHandler$ConnectionWorker.run(JMSIn t erfaceHandler.java:742) at java.lang.Thread.run(Thread.java:534) Caused by: java.net.ConnectException: Connection timed out Text continued in next action...
23-JUN-04 12:21:17 GMT
Text continued from previous action...
at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158) at java.net.Socket.connect(Socket.java:452) at java.net.Socket.connect(Socket.java:402) at java.net.Socket.<init>(Socket.java:309) at java.net.Socket.<init>(Socket.java:153) at com.evermind.server.rmi.RMIConnection.connect(RMIConnection.java:2209) at com.evermind.server.rmi.RMIConnection.lookup(RMIConnection.java:1685) at com.evermind.server.rmi.RMIServer.lookup(RMIServer.java:727) at com.evermind.server.rmi.RMIContext.lookup(RMIContext.java:134) ... 8 more
05-JUL-04 14:38:12 GMT
Hi,
Why
are you connecting to RMi port port instead of request port? This
remote port can be obtained from opmn.xml file in
$oracle_Home/opmn/conf directory. Y ou have a line like below in this file <port local="6100" remote="6200" request="6003"/>
http://download-uk.oracle.com/docs/cd/B10464_01/web.904/b10326/ormi.htm#1040305
discusses about use of the above syntax in oc4j & ias before &
after 1 0g version. eg: opmn:ormi://<host>:<request port>:<oc4j instance>/<app name> opmn:ormi://localhost:6003:home/HelloEJB
Hope this helps.
Thanks, Prag
05-JUL-04 14:38:22 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
12-JUL-04 09:04:37 GMT
Hi Michael,
Please let us know if you need further assistance on this SR
Thanks, Prag
12-JUL-04 09:04:44 GMT
Email Update button has been pressed: Sending email to Michael.Wever@bokklubbene .no.
21-JUL-04 09:57:36 GMT
UPDATE =======
Hi Michael,
I
haven't heard back from you, so I assume that this is no longer an
issue or the issue has been resolved. If this is not the case, pl ease update the SR as soon as possible with the requested information and I will be glad to assist you further. Otherwise, no update is necessary and the SR wil l automatically close after two weeks.
Best Regards, Oracle Support Services
STATUS ======= Inactivated -- Pending Customer Response
06-AUG-04 00:04:09 GMT
TAR passed SCL review date. Setting to HCL.
|