Issue Details (XML | Word | Printable)

Key: GLASSFISH-6885
Type: Bug Bug
Status: Closed Closed
Resolution: Won't Fix
Priority: Minor Minor
Assignee: Simon Meng
Reporter: janchj
Votes: 3
Watchers: 3
Operations

If you were logged in you would be able to see more operations.
glassfish

Unable to lookup remote JMS Connection Factory from within server

Created: 08/Dec/08 01:55 PM   Updated: 17/Jan/13 06:50 AM   Resolved: 17/Jan/13 06:50 AM
Component/s: jms
Affects Version/s: 9.1peur2
Fix Version/s: 4.0

Time Tracking:
Not Specified

Environment:

Operating System: Windows XP
Platform: PC


Issuezilla Id: 6,885
Tags:
Participants: janchj, mweiss, rampsarathy, sanandal, Satish Kumar, Simon Meng and Tom Mueller


 Description  « Hide

I am using Glassfish 9.1_02 (build b04-fcs) with 2 servers (domain1 and domain2).

I have created a JMS Connection Factory on server 1: /jms/myFactory

When I use the following code from a standalone client, I can lookup the factory
with no issues.

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.enterprise.naming.SerialInitContextFactory");
env.put("org.omg.CORBA.ORBInitialPort", "3700");
env.put("org.omg.CORBA.ORBInitialHost", "server1");
env.put("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
env.put("java.naming.factory.state",
"com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
Context ic = new InitialContext(env);
ConnectionFactory connectionFactory =
(ConnectionFactory)(ic.lookup("jms/myFactory"));

However, if I place this code inside an EJB on server2 and try to exercise it, I
get the following error:

[#|2008-12-08T14:12:43.768-0700|WARNING|sun-appserver9.1|javax.enterprise.system.stream.err|_ThreadID=12;_ThreadName=Thread-7;_RequestID=54a6359b-fced-4237-9501-311c7dc551e6;|javax.naming.NameNotFoundException:
myFactory not found
at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:216)
at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:188)
at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:192)
at
com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:74)
at
com.sun.enterprise.naming.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
at
com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
at
com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
at
com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
at
com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)

This seems to only occur when trying to look up a JMS resource. If I create an
EJB on server1 I can look it up with no problem using the above code and
replacing the connection lookup with:

myEJB ejb = (myEJB)(ic.lookup("myEJB"));

Is it possible to send/receive JMS messages between servers? If so, how?

Thanks,

Joe



rampsarathy added a comment - 08/Dec/08 10:03 PM

Hi Joe,
If you want to send JMS messages between 2 servers , you could create a
connection factory in server2 that points to the mq broker address (AddressList)
in server1, and inject this connection factory into the EJB on server2, and use
this connection to send messages.
Let me know if you need somehthing else.

You could also make server1 and server2 share the same MQ broker , that way all
connection factories created (by default) on both servers would always use the
same MQ broker.


Satish Kumar added a comment - 09/Dec/08 04:57 AM

Reducing the priority of this issue to the appropriate level...


rampsarathy added a comment - 09/Dec/08 06:48 PM

Hi Joe,
Your AddressList should point to the jms broker port (7676/4878), you should
not point it to the ORB port.

----------------------------------------------------------------------------------

Ramesh,

Changed the type on both servers to LOCAL and restarted.

Created a "local" connection factory on server 2 with:

AddressList – localhost:3700

Received the following WARNINGs in the logfile on startup

[#|2008-12-09T08:33:12.043-0700|INFO|sun-appserver9.1|javax.enterprise.r
esource.resourceadapter|_ThreadID=10;_ThreadName=main;|JMS Service
Connection URL is :mq://localhost:4878/|#]

[#|2008-12-09T08:33:12.152-0700|INFO|sun-appserver9.1|javax.resourceadap
ter.mqjmsra.lifecycle|_ThreadID=10;_ThreadName=main;|MQJMSRA_RA1101:
SJSMQ JMS Resource Adapter starting...|#]

[#|2008-12-09T08:33:12.215-0700|INFO|sun-appserver9.1|javax.resourceadap
ter.mqjmsra.lifecycle|_ThreadID=10;_ThreadName=main;|MQJMSRA_LB1101:
Looking for Broker Running at:localhost:4878|#]

[#|2008-12-09T08:33:13.246-0700|WARNING|sun-appserver9.1|javax.jms|_Thre
adID=10;_ThreadName=main;_RequestID=4832269c-a402-46d0-984b-7c95fea68a6a
;|[C4003]: Error occurred on connection creation [localhost:4878]. -
cause: java.net.ConnectException: Connection refused: connect|#]

[#|2008-12-09T08:33:15.325-0700|WARNING|sun-appserver9.1|javax.jms|_Thre
adID=10;_ThreadName=main;_RequestID=4832269c-a402-46d0-984b-7c95fea68a6a
;|[C4003]: Error occurred on connection creation [localhost:4878]. -
cause: java.net.ConnectException: Connection refused: connect|#]

[#|2008-12-09T08:33:17.294-0700|WARNING|sun-appserver9.1|javax.jms|_Thre
adID=10;_ThreadName=main;_RequestID=4832269c-a402-46d0-984b-7c95fea68a6a
;|[C4003]: Error occurred on connection creation [localhost:4878]. -
cause: java.net.ConnectException: Connection refused: connect|#]

[#|2008-12-09T08:33:21.654-0700|INFO|sun-appserver9.1|javax.resourceadap
ter.mqjmsra.lifecycle|_ThreadID=10;_ThreadName=main;|MQJMSRA_RA1101:
SJSMQ JMSRA Started:LOCAL|#]

When I call my code, the connection factory lookup succeeded

ConnectionFactory connectionFactory =
(ConnectionFactory)(ic.lookup("jms/myFactory"));

but the createConnection()failed:

Connection connection = connectionFactory.createConnection();

With the following errors:

[#|2008-12-09T08:36:01.172-0700|WARNING|sun-appserver9.1|javax.jms|_Thre
adID=12;_ThreadName=Thread-6;_RequestID=078bf18e-5592-4332-9a41-2b39db6f
5526;|[C4003]: Error occurred on connection creation [localhost:3700]. -
cause: java.lang.NumberFormatException: For input string: "
"|#]

[#|2008-12-09T08:36:01.172-0700|SEVERE|sun-appserver9.1|javax.resourcead
apter.mqjmsra.outbound.connection|_ThreadID=12;_ThreadName=Thread-6;_Req
uestID=078bf18e-5592-4332-9a41-2b39db6f5526;|MQJMSRA_MC4001:
constructor:Aborting:JMSException on createConnection=[C4003]: Error
occurred on connection creation [localhost:3700]. - cause:
java.lang.NumberFormatException: For input string: "
"|#]

[#|2008-12-09T08:36:01.172-0700|WARNING|sun-appserver9.1|javax.enterpris
e.system.stream.err|_ThreadID=12;_ThreadName=Thread-6;_RequestID=078bf18
e-5592-4332-9a41-2b39db6f5526;|com.sun.messaging.jms.JMSException:
[C4003]: Error occurred on connection creation [localhost:3700]. -
cause: java.lang.NumberFormatException: For input string: "
"
at
com.sun.messaging.jmq.jmsclient.ExceptionHandler.throwConnectionExceptio
n(ExceptionHandler.java:274)
at
com.sun.messaging.jmq.jmsclient.ExceptionHandler.handleConnectException(
ExceptionHandler.java:220)
at
com.sun.messaging.jmq.jmsclient.PortMapperClient.readBrokerPorts(PortMap
perClient.java:234)
at
com.sun.messaging.jmq.jmsclient.PortMapperClient.init(PortMapperClient.j
ava:148)
at
com.sun.messaging.jmq.jmsclient.PortMapperClient.<init>(PortMapperClient
.java:90)
at
com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPConnectionHandler.<init>
(TCPConnectionHandler.java:130)
at
com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPStreamHandler.openConnec
tion(TCPStreamHandler.java:135)
at
com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(Con
nectionInitiator.java:778)
at
com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnectionNew(
ConnectionInitiator.java:254)
at
com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(Con
nectionInitiator.java:208)
at
com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(Con
nectionInitiator.java:158)
at
com.sun.messaging.jmq.jmsclient.ProtocolHandler.init(ProtocolHandler.jav
a:807)
at
com.sun.messaging.jmq.jmsclient.ProtocolHandler.<init>(ProtocolHandler.j
ava:1509)
at
com.sun.messaging.jmq.jmsclient.ConnectionImpl.openConnection(Connection
Impl.java:2280)
at
com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.java:
1012)
at
com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.jav
a:414)
at
com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedConn
ectionImpl.java:60)
at
com.sun.messaging.jmq.jmsclient.XAConnectionImpl.<init>(XAConnectionImpl
.java:58)
at
com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFac
tory.java:91)
at
com.sun.messaging.jms.ra.ManagedConnection.<init>(ManagedConnection.java
:193)
at
com.sun.messaging.jms.ra.ManagedConnectionFactory.createManagedConnectio
n(ManagedConnectionFactory.java:213)
at
com.sun.enterprise.resource.ConnectorAllocator.createResource(ConnectorA
llocator.java:136)
at
com.sun.enterprise.resource.AbstractResourcePool.createSingleResource(Ab
stractResourcePool.java:891)
at
com.sun.enterprise.resource.AbstractResourcePool.createResourceAndAddToP
ool(AbstractResourcePool.java:1752)
at
com.sun.enterprise.resource.AbstractResourcePool.createResources(Abstrac
tResourcePool.java:917)
at
com.sun.enterprise.resource.AbstractResourcePool.initPool(AbstractResour
cePool.java:225)
at
com.sun.enterprise.resource.AbstractResourcePool.internalGetResource(Abs
tractResourcePool.java:516)
at
com.sun.enterprise.resource.AbstractResourcePool.getResource(AbstractRes
ourcePool.java:443)
at
com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolMana
gerImpl.java:248)
at
com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.
java:176)
at
com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnectio
n(ConnectionManagerImpl.java:337)
at
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(C
onnectionManagerImpl.java:189)
at
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(C
onnectionManagerImpl.java:165)
at
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(C
onnectionManagerImpl.java:158)
at
com.sun.messaging.jms.ra.ConnectionFactoryAdapter._allocateConnection(Co
nnectionFactoryAdapter.java:179)
at
com.sun.messaging.jms.ra.ConnectionFactoryAdapter.createConnection(Conne
ctionFactoryAdapter.java:166)
at
com.sun.messaging.jms.ra.ConnectionFactoryAdapter.createConnection(Conne
ctionFactoryAdapter.java:148)
at Loader.run(Loader.java:65)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NumberFormatException: For input string: "
"
at
java.lang.NumberFormatException.forInputString(NumberFormatException.jav
a:48)
at java.lang.Integer.parseInt(Int|#]

[#|2008-12-09T08:36:01.188-0700|WARNING|sun-appserver9.1|javax.enterpris
e.system.stream.err|_ThreadID=12;_ThreadName=Thread-6;_RequestID=078bf18
e-5592-4332-9a41-2b39db6f5526;|eger.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at
com.sun.messaging.jmq.io.PortMapperTable.read(PortMapperTable.java:271)
at
com.sun.messaging.jmq.jmsclient.PortMapperClient.readBrokerPorts(PortMap
perClient.java:228)
... 36 more

#]

[#|2008-12-09T08:36:01.188-0700|WARNING|sun-appserver9.1|javax.enterpris
e.resource.resourceadapter|_ThreadID=12;_ThreadName=Thread-6;jms/myFacto
ry;MQJMSRA_MC4001: constructor:Aborting:JMSException on
createConnection=[C4003]: Error occurred on connection creation
[localhost:3700]. - cause: java.lang.NumberFormatException: For input
string: "
";_RequestID=078bf18e-5592-4332-9a41-2b39db6f5526;|RAR5117 : Failed to
obtain/create connection from connection pool [ jms/myFactory ]. Reason
: MQJMSRA_MC4001: constructor:Aborting:JMSException on
createConnection=[C4003]: Error occurred on connection creation
[localhost:3700]. - cause: java.lang.NumberFormatException: For input
string: "
"|#]

[#|2008-12-09T08:36:01.188-0700|WARNING|sun-appserver9.1|javax.enterpris
e.system.stream.err|_ThreadID=12;_ThreadName=Thread-6;_RequestID=078bf18
e-5592-4332-9a41-2b39db6f5526;|
com.sun.messaging.jms.JMSException: MQRA:CFA:allocation
failure:createConnection:Error in allocating a connection. Cause:
MQJMSRA_MC4001: constructor:Aborting:JMSException on
createConnection=[C4003]: Error occurred on connection creation
[localhost:3700]. - cause: java.lang.NumberFormatException: For input
string: "
"
at
com.sun.messaging.jms.ra.ConnectionFactoryAdapter._allocateConnection(Co
nnectionFactoryAdapter.java:183)
at
com.sun.messaging.jms.ra.ConnectionFactoryAdapter.createConnection(Conne
ctionFactoryAdapter.java:166)
at
com.sun.messaging.jms.ra.ConnectionFactoryAdapter.createConnection(Conne
ctionFactoryAdapter.java:148)
at Loader.run(Loader.java:65)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.resource.spi.ResourceAllocationException: Error in
allocating a connection. Cause: MQJMSRA_MC4001:
constructor:Aborting:JMSException on createConnection=[C4003]: Error
occurred on connection creation [localhost:3700]. - cause:
java.lang.NumberFormatException: For input string: "
"
at
com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnectio
n(ConnectionManagerImpl.java:353)
at
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(C
onnectionManagerImpl.java:189)
at
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(C
onnectionManagerImpl.java:165)
at
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(C
onnectionManagerImpl.java:158)
at
com.sun.messaging.jms.ra.ConnectionFactoryAdapter._allocateConnection(Co
nnectionFactoryAdapter.java:179)
... 4 more
Caused by: com.sun.enterprise.resource.PoolingException: MQJMSRA_MC4001:
constructor:Aborting:JMSException on createConnection=[C4003]: Error
occurred on connection creation [localhost:3700]. - cause:
java.lang.NumberFormatException: For input string: "
"
at
com.sun.enterprise.resource.AbstractResourcePool.createSingleResource(Ab
stractResourcePool.java:899)
at
com.sun.enterprise.resource.AbstractResourcePool.createResourceAndAddToP
ool(AbstractResourcePool.java:175|#]

[#|2008-12-09T08:36:01.203-0700|WARNING|sun-appserver9.1|javax.enterpris
e.system.stream.err|_ThreadID=12;_ThreadName=Thread-6;_RequestID=078bf18
e-5592-4332-9a41-2b39db6f5526;|2)
at
com.sun.enterprise.resource.AbstractResourcePool.createResources(Abstrac
tResourcePool.java:917)
at
com.sun.enterprise.resource.AbstractResourcePool.initPool(AbstractResour
cePool.java:225)
at
com.sun.enterprise.resource.AbstractResourcePool.internalGetResource(Abs
tractResourcePool.java:516)
at
com.sun.enterprise.resource.AbstractResourcePool.getResource(AbstractRes
ourcePool.java:443)
at
com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolMana
gerImpl.java:248)
at
com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.
java:176)
at
com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnectio
n(ConnectionManagerImpl.java:337)
... 8 more

#]

Joe

----------------------------------------------------------------------------------

Ramesh wrote :

If you are using DAS as server1 and another DAS instance as server2 ,
Could you change the jms-service type to LOCAL (default is EMBEDDED).
You can do it through asadmin (set server./jms-service/.type=LOCAL)
command line or admin GUI.
After changing this restart the servers and try.

You have to use LOCAL mode of integration because of an issue (i think
3462) that is getting fixed in v2.1
Please let me know how it goes and update the issue accordingly.

Thanks
Ramesh
-------------------------------------------------------------------------------
Rogers, Joe E. wrote:
> > I have tried creating a connection factory that points to the other
> > server but have not been able to get that to work either. Both server
> > instances are running on the same system and have been configured with
> > different ports.
> >
> > Server 1: iiop=3700 jms=7676
> > Server 2: iiop=4838 jms=4878
> >
> > When I created the connection factory on server 2 I added the
property:
> >
> > AddressList localhost:3700
> >
> > When I ran my example, I was able to look up this "local" connection
> > factory but when the code attempted to look up the "remote" queue it
> > would fail.
> >
> > Can you provide a working example complete with connection factory
setup
> > and source code? I have read in several places about using the
> > AddressList property but have never actually seen any code that works.
> >
> > Thanks,
> >
> >
> > Joe


janchj added a comment - 11/Dec/08 08:53 AM

I have received some excellent help from Ramesh on this issue.

The problem it seems is that there are some issues with the JMS service. By
default, the type is set to EMBEDDED, this needs to be changed to LOCAL. From
the console tree, Configuration->Java Message Service. A server restart is
needed. Next, configure the servers as follows:

Server 1 (domain1) - "local"
JMS Connection Factory: jms/MyFactory
JMS Destination: jms/MyTopic
Stateless Session Bean
-------------------------------------------------
Context ic = new InitialContext();

ConnectionFactory connectionFactory =
(ConnectionFactory)(ic.lookup("jms/MyFactory"));
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = (Topic) ic.lookup("jms/MyTopic");
MessageProducer producer = session.createProducer(topic);
TextMessage message = session.createTextMessage();
message.setText(msg);
producer.send(message);

Server2 (domain2) - "remote"
JMS Connection Factory: jms/MyFactory (Property: AddressList Value: server1:xxxx
where xxxx is the JMS port of server 1 - see domain.xml)
JMS Destination: jms/MyTopic
LIfecycle Module
------------------------------------------
Context ic = new InitialContext();
ConnectionFactory connectionFactory =
(ConnectionFactory)(ic.lookup("jms/MyFactory"));
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = (Topic) ic.lookup("jms/MyTopic");
MessageConsumer messageConsumer = session.createConsumer(topic);
connection.start();
Message m = messageConsumer.receive();

While this is a good solution, the original "bug" is still unanswered. I would
like to be able to "lookup" via JNDI a remote ConnectionFactory rather than
create a new factory each time a server is added to the network. I am looking
forward to your solution. Thanks again Ramesh!


sanandal added a comment - 11/Jan/09 07:01 AM

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."


mweiss added a comment - 21/Jul/09 01:46 AM
      • Issue 6885 has been confirmed by votes. ***

Tom Mueller added a comment - 06/Mar/12 09:55 PM

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.


Simon Meng added a comment - 11/May/12 11:53 AM

I tried to reproduce the issue. My result is a little different. Lookup JMS connection factory succeed in server side program, but create connect failed. Standalone java program works fine.

I debugged the source code. In server side program, remote lookup returns DirectConnectionFactory object. In standalone program, remote lookup returns ConnectionFactoryAdapter object. Maybe the jndi lookup operation should return same type in both scenario. Another possible reason is some attributes of DirectConnectionFactory object are set properly.


Simon Meng added a comment - 17/May/12 03:23 PM

The failed use case include two servers. A server side application program (servlet or ejb) run in server1. The application try to lookup a jms connection factory from a remote server - server2. When it use the lookup returned connection factory to create connection, failure occured. Same code can run successfully in a standalone program.
The root cause is when lookup the jms connection factory from the remote server, a jms resource adapter will be created in local side. But the jms resource adapter creation check the runtime environment. The jms resource adapter that created in a server runtime is different from that created in the client runtime. The key difference is server side creation check and use the local mq properties.
I think in the failed use case, when create the jms resource adapter in server1, its environment should be treated as a client runtime.


Simon Meng added a comment - 28/Jun/12 12:42 PM

Following is the error message and stacktrace:
Exception occurred: com.sun.messaging.jms.JMSException: MQRA:DCF:allocation failure:createConnection:No such resource : jms/myConnectionFactory com.sun.messaging.jms.JMSException: MQRA:DCF:allocation failure:createConnection:No such resource : jms/myConnectionFactory at com.sun.messaging.jms.ra.DirectConnectionFactory._allocateConnection(DirectConnectionFactory.java:541) at com.sun.messaging.jms.ra.DirectConnectionFactory.createConnection(DirectConnectionFactory.java:258) at com.sun.messaging.jms.ra.DirectConnectionFactory.createConnection(DirectConnectionFactory.java:237) at servlets.SimpleJmsServlet.processRequest(SimpleJmsServlet.java:71) at servlets.SimpleJmsServlet.doGet(SimpleJmsServlet.java:115) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1593) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:285) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:660) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:600) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:337) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:240) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:172) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:164) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:169) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:265) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:134) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:78) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:815) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:567) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:547) at java.lang.Thread.run(Thread.java:679) Caused by: javax.resource.ResourceException: No such resource : jms/myConnectionFactory at com.sun.enterprise.connectors.ConnectionManagerImpl.validateResourceAndPool(ConnectionManagerImpl.java:430) at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:171) at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165) at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:160) at com.sun.messaging.jms.ra.DirectConnectionFactory._allocateConnection(DirectConnectionFactory.java:536) ... 31 more


Simon Meng added a comment - 17/Jan/13 06:50 AM

After discussing, we think this is a deprecated use case. We will not provide fix for it.