JMS NPE
Hi, running 10.0 MP1 in clustered mode.
Seeing an NPE..
java.lang.NullPointerException
at weblogic.rmi.cluster.WeightBasedReplicaHandler.failOver(WeightBasedReplicaHandler.java:120)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:257)
at weblogic.jms.frontend.FEConnectionFactoryImpl_1001_WLStub.connectionCreateRequest(Unknown Source)
at weblogic.jms.client.JMSConnectionFactory.setupJMSConnection(JMSConnectionFactory.java:224)
at weblogic.jms.client.JMSConnection.preCreateReplacement(JMSConnection.java:1557)
at weblogic.jms.client.JMSConnection.reconnect(JMSConnection.java:2284)
at weblogic.jms.client.WLConnectionImpl.processReconnectTimer(WLConnectionImpl.java:252)
at weblogic.jms.client.JMSConnection.timerExpired(JMSConnection.java:1195)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:464)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
Any help would be greatly appreciated !
Can I ask if you ever got an answer on this? I may be seeing something similar.
Similar Messages
-
NPE from JMS Connection Object
When I try to get the ClientID from a connection using JMX, I get a NPE from the weblogic.jms.frontend.FEConnectionRuntimeDelegate.getClientID(FEConnectionRuntimeDelegate.java:66).
The following is the full stack trace.
javax.management.RuntimeMBeanException: RuntimeException thrown by the getAttribute method of the DynamicMBean for the attribute ClientID
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:205)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
at javax.management.remote.rmi.RMIConnectionImpl_920_WLStub.getAttribute(Unknown Source)
at weblogic.management.remote.common.RMIConnectionWrapper$11.run(ClientProviderBase.java:498)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.security.Security.runAs(Security.java:61)
at weblogic.management.remote.common.RMIConnectionWrapper.getAttribute(ClientProviderBase.java:496)
at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:854)
at com.lordabbett.muni.sma.util.JMXClientCleanupListener.handleNotification(JMXClientCleanupListener.java:173)
at com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.dispatchNotification(ClientNotifForwarder.java:496)
at com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.run(ClientNotifForwarder.java:462)
at com.sun.jmx.remote.internal.ClientNotifForwarder$LinearExecutor$1.run(ClientNotifForwarder.java:83)
Caused by: javax.management.RuntimeMBeanException: MBean getAttribute failed: java.lang.NullPointerException
at weblogic.management.jmx.modelmbean.WLSModelMBean.getAttribute(WLSModelMBean.java:527)
at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.getAttribute(DynamicMetaDataImpl.java:96)
at com.sun.jmx.mbeanserver.MetaDataImpl.getAttribute(MetaDataImpl.java:181)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:638)
at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:659)
at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.getAttribute(WLSMBeanServerInterceptorBase.java:112)
at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.getAttribute(WLSMBeanServerInterceptorBase.java:112)
at weblogic.management.mbeanservers.internal.SecurityInterceptor.getAttribute(SecurityInterceptor.java:281)
at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor$5.run(AuthenticatedSubjectInterceptor.java:192)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor.getAttribute(AuthenticatedSubjectInterceptor.java:190)
at weblogic.management.jmx.mbeanserver.WLSMBeanServer.getAttribute(WLSMBeanServer.java:269)
at weblogic.management.mbeanservers.domainruntime.internal.ManagedMBeanServerConnection.getAttribute(ManagedMBeanServerConnection.java:280)
at weblogic.management.mbeanservers.domainruntime.internal.FederatedMBeanServerInterceptor.getAttribute(FederatedMBeanServerInterceptor.java:227)
at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.getAttribute(WLSMBeanServerInterceptorBase.java:112)
at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.getAttribute(WLSMBeanServerInterceptorBase.java:112)
at weblogic.management.mbeanservers.internal.SecurityInterceptor.getAttribute(SecurityInterceptor.java:281)
at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor$5.run(AuthenticatedSubjectInterceptor.java:192)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor.getAttribute(AuthenticatedSubjectInterceptor.java:190)
at weblogic.management.jmx.mbeanserver.WLSMBeanServer.getAttribute(WLSMBeanServer.java:269)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1385)
at javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
at java.security.AccessController.doPrivileged(Native Method)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348)
at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:597)
at javax.management.remote.rmi.RMIConnectionImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:174)
... 12 more
Caused by: java.lang.NullPointerException
at weblogic.jms.frontend.FEConnectionRuntimeDelegate.getClientID(FEConnectionRuntimeDelegate.java:66)
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:585)
at weblogic.management.jmx.modelmbean.WLSModelMBean.getAttribute(WLSModelMBean.java:499)
... 40 moreCan you give me the link for the management forum, since weblogic.developer.interest.management talks about a different topic and i could not find .jmx newgroup.
I got the mbeanserver using the following method:
public static void initConnection(String hostname, String portString) throws IOException,
MalformedURLException {
String protocol = "t3";
Integer portInteger = Integer.valueOf(portString);
int port = portInteger.intValue();
String jndiroot = "/jndi/";
String mserver = "weblogic.management.mbeanservers.domainruntime";
logger.info("protocol="+protocol);
logger.info("hostname="+hostname);
logger.info("port="+port);
logger.info("jndiroot="+jndiroot);
logger.info("mserver="+mserver);
JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname, port, jndiroot + mserver);
Properties p = ApplicationResources.getResourceAsProperties(SmartPMConstants.SMARTPM_APPLICATION_RESOURCE);
String wluser = p.getProperty(SmartPMConstants.SMARTPM_WLUSER);
String wlpwd = p.getProperty(SmartPMConstants.SMARTPM_WLPWD);
Hashtable h = new Hashtable();
h.put(Context.SECURITY_PRINCIPAL, wluser);
h.put(Context.SECURITY_CREDENTIALS, wlpwd);
logger.info("user cred="+h);
h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "weblogic.management.remote");
connector = JMXConnectorFactory.connect(serviceURL, h);
connection = connector.getMBeanServerConnection();
} -
JMS MODULE SECURITY IN WEBLOGIC
Hi,
I have one JMS Module that having two queues. I have to create the one user who will read and write the data.
That user do not have the access to the console so that this user will not create and delete resources in the server as well start and stop the server.
Could you please help me how to put the security for that user?
I have already tried below mentioned steps, but this is only for securing queues with indidual user.
http://weblogic-wonders.com/weblogic/2011/02/01/securing-weblogic-jms-resources/
Advance Thanks,
Anil.Hi Arun,
A NullPointerException is almost always an indication of a bug (99% of the time), and rarely an indicator of user error.
If the NPE is thrown by WebLogic code (and not app code), I recommend filing a customer support case (or if you happen to be on old version or service-pack, updating to the latest).
As for your configuration change, it will very likely take effect upon a cluster restart regardless of the NPE - (the NPE, based on your description, is likely a localized problem with the console). You can check your JMS module XML to see if the console change was reflected in the configuration file...
Tom -
Jms c api crashes when accessing jms queue senders from different threads
Does anybody encountered similar problem or know how to solve the following problem?
<p>
The jms c api crashes if I created jms queue senders/producers from one threads and have another thread to send messages using the senders:
<p>
<b>JMSDEBUG:</b>
<p>
JMSDEBUG: An exception occurred at line 281 in file src/jniimpl/JmsUtilities.c
<b>JMS Exception:</b>
<pre>
weblogic.jms.common.JMSException
at weblogic.jms.dispatcher.DispatcherWrapperState.dispatchSyncTran(Dispa
tcherWrapperState.java:440)
at weblogic.jms.client.JMSProducer.sendInternal(JMSProducer.java:382)
at weblogic.jms.client.JMSProducer.send(JMSProducer.java:207)
Caused by: <b>java.lang.NoClassDefFoundError
</b> at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:30
9)
at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:25
8)
at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:25
3)
at weblogic.rjvm.MsgAbbrevInputStream.resolveClass(MsgAbbrevInputStream.
java:324)
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedO
bjectInputStream.java:96)
at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.ja
va:117)
at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:56)
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:159)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
at weblogic.jms.dispatcher.DispatcherImpl_813_WLStub.dispatchSyncTranFut
ure(Unknown Source)
at weblogic.jms.dispatcher.DispatcherWrapperState.dispatchSyncTran(Dispa
tcherWrapperState.java:406)
... 2 more
</pre>
<p>
<b>the ULOG file:</b>
<p>
162722.tekton!?proc.16113.1.-2: 04-04-2005: WebLogic Server Version 9.0
162722.tekton!?proc.16113.1.-2: NLS:4: Cannot open message catalog LIBJMSC_CAT, set 1, num 13; check NLSPATH, LANG=C
<p>
<b>NOTE:</b>
The senders works fine if the same thread creates the senders and uses them to send messages.
<p>
<pre>
Environemnt:
OS:SunOS 5.7 Generic_106541-22 sun4u sparc SUNW,Ultra-250
WL: 8.1.3
C++: Forte 7
<pre>It appears that the problem is caused by the following NPE:
<pre>
Caused by: java.lang.NullPointerException
at weblogic.i18ntools.L10nLookup.loadProps(L10nLookup.java:88)
at weblogic.i18ntools.L10nLookup.<init>(L10nLookup.java:160)
at weblogic.i18ntools.L10nLookup.init(L10nLookup.java:132)
at weblogic.i18ntools.L10nLookup.getLocalizer(L10nLookup.java:315)
at weblogic.management.commo.internal.CommoCommandLineTextFormatter.<ini
t>(CommoCommandLineTextFormatter.java:20)
at weblogic.management.commo.Commo.<clinit>(Commo.java:89)
... 13 more
</pre> -
The first time I call an MDB after starting up an application always gets an NPE with the stack trace below. Every subsequent call to the MDB successfully fires the bean's onMessage method.
I am using non-persistent delivery with a file store.
Stack trace is:
<Jun 7, 2005 3:03:31 PM PDT> <Error> <JMS> <BEA-040368> <The following exception has occurred:
java.lang.NullPointerException
at weblogic.webservice.saf.Util.getMessageId(Util.java:142)
at weblogic.webservice.saf.MessageReader.onMessage(MessageReader.java:142)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2678)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2598)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>Since I was using Aperture each time when the crash happened, and because Aperture itself was behaving strange just before the crash, I think Aperture must be to blame (??).
Not necessarily. You may have installed additional software, that is causing Aperture to crash. Did you install something, before the crashing started? Or did you import new images or videos?
Can I replace my copy of Aperture (I have the latest verison installed) with a new version without messing up my library of photos? How would I do this, and do I need to buy a new copy of Aperture or will the company replace the copy that I think is corrupted and causing my problems?
Reinstalling Aperture will not delete your Aperture library. But how did you reinstall your system, after the internal disk has been replaced?
And is your profile signature still current? MacOS X 10.6.2? And what is your Aperture version? How to reinstall Aperture, will depend on the system version and Aperture version, and how you bought Aperture.
Regards
Léonie -
Setting the JMS Header from Payload
Hi Experts,
My requirement is to send the payment data coming from ECC to non sap system.Sender adapter is proxy and receiver is JMS.ECC will be sending the filename in one field and payload content as a string in another field.PI has to set the filename coming from ECC in JMS header property.What configuration changes should i need to make in JMS adapter to achieve it?
Converting the XML to string is possible in PI.But my question is converting the string XML data into XML fields is possible in SAP PI?If so how to do that?
Please provide your suggestion.
Regards,
KarthigaHi Karthiga,
The UDF is there in blog
DynamicConfiguration dynamicconfiguration = (DynamicConfiguration)param.get("DynamicConfiguration");
DynamicConfigurationKey dynamicconfigurationkey = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSMessageProperty0");
String s = dynamicconfiguration.get(dynamicconfigurationkey);
CorrID.append(s);
Please let me know if you have any issue.
regards,
Harish -
How to configure an Alert message if communicationChannel(JMS) stops
All,
Is there a way how to configure an alert when the communication channel stops.
<b>Scenario:</b>
In the path Runtime workbench->Component Monitoring->Adapter Engine->Communication Channel monitoring, if we see that a communication channel has stopped(RED traffic light as Status), then can we trigger an alert notification for same.
Currently we have alrerts configured for any message/s failure in the JMS Adapter Framework. So can we trigger simmilar alerts when a comm channel stops(for whatever reason).
Thanks in advance
RKHi Sreeram,
Thanks for the quick reply.
We have a scenario where we activate individual channels at a given time. So in this case, Adapter will always be in RED as all queues are never running in our scenario.
So we need an ALERT to be triggered for individual comm channels. Is theer any way that you can think of ?
Thanks and regards
RK -
JDBC connection pool failures when used by JMS stores
We are using WebLogic 6.1 sp2. We defined a separate connection pool for use by
a JMS Store.
<JDBCConnectionPool Name="sybaseJMSPool"
Targets="cluster00"
InitialCapacity="2"
MaxCapacity="10"
DriverName="com.sybase.jdbc2.jdbc.SybDriver"
Properties="[email protected]@;[email protected]@;charset=utf8"
URL="jdbc:sybase:Tds:@jms.db.host@/@jms.db.name@"/>
(note that the @xxx@ string are replaced by actual values).
We are using Sybase Jconnect 5.5 to a Sybase ASE 12.5 database.
We deployed this configuration on a number of environments (testing, staging,
..). The actual hardware and network configuration is different for the different
system, but the WebLogic domain stays the same regarding this issue.
On the test system we frequently get the following exceptions:
<Aug 13, 2002 1:56:04 PM CEST> <Alert> <JMS> <www00-test> <node00>
<ExecuteThread: '6' for queue: 'JMS.TimerClientPool'> <> <> <040048>
<JMSServer "JMSServer00", store failure while writing message for topic
OrderChangeTopic, java.io.IOException: JMS JDBC store, connection pool =
<sybaseJMSPool>, prefix = <JMS00>: write failed
java.sql.SQLException: JZ006: Caught IOException:
com.sybase.jdbc2.jdbc.SybConnectionDeadException: JZ0C0: Connection is already
closed.
at com.sybase.jdbc2.jdbc.ErrorMessage.raiseErrorCheckDead
(ErrorMessage.java:715)
at com.sybase.jdbc2.tds.Tds.handleIOE(Tds.java:3124)
at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1412)
at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1341)
at com.sybase.jdbc2.jdbc.SybStatement.doCancel(SybStatement.java:564)
at com.sybase.jdbc2.jdbc.SybStatement.updateLoop(SybStatement.java:1672)
at com.sybase.jdbc2.jdbc.SybStatement.executeUpdate
(SybStatement.java:1625)
at com.sybase.jdbc2.jdbc.SybPreparedStatement.executeUpdate
(SybPreparedStatement.java:91)
at com.p6spy.engine.logging.P6LogPreparedStatement.executeUpdate
(P6LogPreparedStatement.java:179)
at weblogic.jdbc.pool.Statement.executeUpdate(Statement.java:293)
at weblogic.jms.store.JDBCIOStream.write(JDBCIOStream.java:1246)
at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:250)
at weblogic.jms.store.JMSStore.execute(JMSStore.java:182)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
.>
java.io.IOException: JMS JDBC store, connection pool = <sybaseJMSPool>, prefix
= <JMS00>: write failed
java.sql.SQLException: JZ006: Caught IOException:
com.sybase.jdbc2.jdbc.SybConnectionDeadException: JZ0C0: Connection is already
closed.
at com.sybase.jdbc2.jdbc.ErrorMessage.raiseErrorCheckDead
(ErrorMessage.java:715)
at com.sybase.jdbc2.tds.Tds.handleIOE(Tds.java:3124)
at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1412)
at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1341)
at com.sybase.jdbc2.jdbc.SybStatement.doCancel(SybStatement.java:564)
at com.sybase.jdbc2.jdbc.SybStatement.updateLoop(SybStatement.java:1672)
at com.sybase.jdbc2.jdbc.SybStatement.executeUpdate
(SybStatement.java:1625)
at com.sybase.jdbc2.jdbc.SybPreparedStatement.executeUpdate
(SybPreparedStatement.java:91)
at com.p6spy.engine.logging.P6LogPreparedStatement.executeUpdate
(P6LogPreparedStatement.java:179)
at weblogic.jdbc.pool.Statement.executeUpdate(Statement.java:293)
at weblogic.jms.store.JDBCIOStream.write(JDBCIOStream.java:1246)
at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:250)
at weblogic.jms.store.JMSStore.execute(JMSStore.java:182)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
at weblogic.jms.store.JDBCIOStream.throwIOException
(JDBCIOStream.java:1213)
at weblogic.jms.store.JDBCIOStream.write(JDBCIOStream.java:1256)
at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:250)
at weblogic.jms.store.JMSStore.execute(JMSStore.java:182)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
Before that this message appeared:
<Aug 13, 2002 11:31:16 AM CEST> <Error> <ConnectionManager> <www00-test>
<node00> <ExecuteThread: '26' for queue: 'default'> <> <> <000000>
<Closing: 'weblogic.rjvm.t3.T3JVMConnection@795af6' because of: 'Server
received a message over an uninitialized connection: 'JVMMessage from: 'null'
to: '-4555218188801970213S:192.168.13.1:[7001,7001,7002,7002,7001,7002,-
1]:ADIS:node00' cmd: 'CMD_REQUEST', QOS: '101', responseId: '1',
invokableId: '287', flags: 'JVMIDs Not Sent, TX Context Not Sent', abbrev
offset: '34'''>
This problem did not occur on another system which was used during a 2 day stress
testing session.
It seems that the problem occurs after a period in which no user request where
made. The user requests trigger EJB's that start sending JMS messages.
When the problem occurs, the JMS messaging systems seems to lock up as no messages
are received anymore by the different listeners (MDBs).
Undeploying and redeploying the JBDC connection pool solves the problem. This
solution is unacceptable in case of a production system.
A similarly defined connection pool, which is used by the EJBs to make database
connection, does not manifest this problem.
<JDBCConnectionPool Name="sybasePool"
Targets="cluster00"
InitialCapacity="10"
CapacityIncrement="5"
MaxCapacity="50"
PreparedStatementCacheSize="150"
DriverName="com.sybase.jdbc2.jdbc.SybDriver"
Properties="[email protected]@;[email protected]@;JCONNECT_VERSION=6;charset=utf8"
URL="jdbc:sybase:Tds:@db.host@/@db.name@"/>
The JDBC connection pool is used as follows by the JDBC store
<JMSJDBCStore ConnectionPool="sybaseJMSPool" Name="JDBCStore00" PrefixName="JMS00"/>
<JMSServer Name="JMSServer00" Store="JDBCStore00" Targets="node00">
<JMSTopic JNDIName="ADIS.JMSError" JNDINameReplicated="false" Name="ErrorTopic"/>
<JMSTopic JNDIName="ADIS.Status"
Name="StatusTopic" RedeliveryDelayOverride="300000"/>
<JMSTopic JNDIName="ADIS.OrderChange" JNDINameReplicated="false"
Name="OrderChangeTopic" RedeliveryLimit="3"/>
</JMSServer>
Turning on the "Test Reserved Connection" with a appropriate test table does not
help.
Some sources on the internet tell us that JZ0C0 errors in the Jconnect driver
can be related to network problems. Nevertheless the connection pool should be
able to cope with this.
Can you provide any solution for this ? Or give us hints what can cause the problem
Zhenhao Qi wrote:
thanks! Joe.
The SQL statement itself can no longer be simplified, the long excuation time is due to the database size and complicated Select criteria. I can easily reproduce the problem by using this SQL. I tried "BEA's Oracle driver (Type 4): Version 8.1.7,9.0.1,9.2.0". the question can be dissect into 2 pieces:
1) why the jdbc connection (using oracle.jdbc.OracleDriver) won't return anything if the SQL execution time > 5min, that is probably the Oracle's problem
2) why the occupied connection pool won't release even I set "Statementtimeout=600", this is Weblogic's problem.
ZhenhaoHi. Yes, (1) is oracle's problem. (2) may also be. The JDBC spec has very few
allowances for one thread to interrupt a second thread's JDBC call. If we
transmit your timeout request by calling setQueryTimeout() on the oracle
statement, and if you have a weblogic-controlled transaction we call
Statement.cancel() on any ongoing statement, we end up relying on whether
the Oracle driver implements and responds to those calls.
Are you doing weblogic-controlled transactions? Are you/can you
call Statement.setQueryTimeout() on your statements, or are these
generated JDBC queries?
If you can duplicate the problem using the weblogic.jdbc.oracle.OracleDriver
we have some other debug avenues. This would be good even if you really
want to use the thin driver, because we will do the same JDBC calls to
either driver, and the debug would prove (if) we set up a query timeout
and if we call cancel(). If we do, then we can know that it is the Oracle
driver failing in these regards.
Joe -
Not all JMS consumers are created equal
Hi,
I am experiencing a very strange problem with weblogic 9.2 JMS.
I am using JMS as flow control in an application that allows our users to import data into our application.
the data to be imported varies in size from 100's of records to many hundred thousands of records.
JMS feed a MDB that takes the request and imports the data. The DD allows to 10 concurrent MDB's to service the requests.
The problem arises when the 11'th and 12th request comes in. Instead of waiting for the first availibe MDB to service the requests they seems to be put into the queue of the MDB that was started first. If this MDB is in the process of importing a very large file request 11 and 12 will sit and wait until the large one is done even though there are other MDB's that are idle.
I am hoping that there is an easy fix for this, but for the life of me, I cant seem to find it.
The DD for the MDB looks as follows
<weblogic-enterprise-bean>
<ejb-name>RuleEngineMDB</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>10</max-beans-in-free-pool>
<initial-beans-in-free-pool>10</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>com.company.product.RuleEngineRequestQueue</destination-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
the queue is defined in Weblog as
<queue name="RuleEngineReque
stQueue">
<sub-deployment-name>MyJMSServer</sub-deployment-name>
<delivery-params-overrides>
<delivery-mode>Non-Persistent</delivery-mode>
</delivery-params-overrides>
<message-logging-params>
<message-logging-enabled>true</message-logging-enabled>
<message-logging-format>%header%,%properties%,%body%</message-logging-format>
</message-logging-params>
<jndi-name>com.company.product.RuleEngineRequestQueue</jndi-name>
</queue>
regards,
Lars Hansson
CTO Compost Marketing AB.A little more detail: You will need to configure and target a custom conection factory with "message maximum" set to 1 (the default is 10), and then modify the MDB descriptor to reference the JNDI name of the custom connection factory. The connection factory should be targeted to the entire cluster, and must be targeted to the same cluster that hosts distributed queue. If the MDB is transactional, ensure that that the custom connection factory is also "xa enabled".
Edited by: TomB on Mar 2, 2010 2:44 PM -
JMS connection from SAP PI to Oracle AQ via JNDI...
Hi,
I am currently working on a project that requires connections between PI and Oracle AQ. It was advised that we shoule use PI JMS adpater with JNDI driver. However, it seems that not many people have tried this approach.
Has anyone had similar solutions in production ? How repliable it is ?
Your help is very much appreciated
TimHi Tim,
We implemented a similar scenario and now itu2019s still working.
You have to configure a JNDI connection, but not directly with the Oracle AQ. The Oracle AQ are just queues, and you need a JMS provider in order to establish the connection with these queues. The solution we implemented was:
1. Configure one OC4J server as JMS provider for the Oracle AQ queues.
2. Configure JMS communication channels in SAP PI to establish the connection with the OC4J server.
Maybe you can use a different and newer JMS provider, as BEA Weblogic or SAP WAS (I donu2019t know if itu2019s possible).
We implement the scenario in SAP PI 7.0, and with this version we had a problem: When the communication between JMS adapter and the queues was broken (the DDBB fell down for example), the channel failed, itu2019s normal. But when the DDBB was already running the channel stayed in an error state, and we had to restart the channel manually. The response of SAP to this issue was that the channel behavior was correct because the connection failed.
But this problem occurred rarely, maybe once a month. The solution is very reliable, we exchange a lot of message with this solution, and support messages of any size with an excellent performance.
Best Regards,
Roberto -
Using socket and JMS protocol in the same logic for OSB
Hi frnds,
In my organization...the only communication protocol used is "socket" protocol. However, I want to use JMS protocol to process incoming messages. Can somebody help me figuring out how to go about it.
Using some nice OSB blogs, I am able to create the JMS connection factory and JMS queues in weblogic. And that works fine when I select the communication protocol as JMS while creating the BS and PS.
What should be my message flow when the communication protocol used is "socket" for both BS and PS.
salilHi,
Make the BS as JMS and the PS as socket, in the PS's flow do a route for the BS... Then if an external call is made to the PS via socket, it will send a messages to a JMS queue...
Hope this helps...
Cheers,
Vlad -
Difference Between JMS and RMI
Difference Between JMS and RMI in J2EE Technologies
STFW
JMS - http://www.google.co.za/search?hl=en&q=what+is+jms&meta=
RMI - http://www.google.co.za/search?hl=en&q=what+is+rmi&meta= -
Problem to send a message with JMS
Hi
I'm doing some tests with the api JMS to know how works. I have got some problems. I have been looking for some information but i don't find so much. I have got too doubts.
I am usinng Netbeans 5.5 with Sun Java System Application Server Platform Edition 9.0_01 (build b14).
I am trying to do it with ejb. Because in the future the application can have got so many connection in the same time.
The server shows me the next errors.
Starting Sun Java System Application Server Platform Edition 9.0_01 (build b14) ...
CORE5098: AS Socket Service Initialization has been completed.
CORE5076: Using [Java HotSpot(TM) Client VM, Version 1.6.0_03] from [Sun Microsystems Inc.]
SEC1002: Security Manager is OFF.
ADM0001:MBeanServer initialized successfully
SEC1143: Loading policy provider com.sun.enterprise.security.provider.PolicyWrapper.
sgmt.service_initialized
DPL5400:Exception occurred : error in opening zip file.
ADM1079: Initialization of AMX MBeans successful
ADM1504: Here is the JMXServiceURL for the Standard JMXConnectorServer: [service:jmx:rmi:///jndi/rmi://t1:8686/jmxrmi]. This is where the remote administrative clients should connect using the standard JMX connectors
ADM1506: Status of Standard JMX Connector: Active = [true]
JTS5014: Recoverable JTS instance, serverId = [3700]
About to load the system app: MEjbApp
LDR5010: All ejb(s) of [MEjbApp] loaded successfully!
About to load the system app: __ejb_container_timer_app
EJB5109:EJB Timer Service started successfully for datasource [jdbc/__TimerPool]
LDR5010: All ejb(s) of [__ejb_container_timer_app] loaded successfully!
NAM0008 : Invalid Destination: jndi/Topic for java:comp/env/jms/Topic
EJB5090: Exception in creating EJB container [javax.naming.NamingException [Root exception is javax.naming.NameNotFoundException]]
appId=Chat-ejb moduleName=Chat-ejb ejbName=publicarBean
LDR5004: UnExpected error occured while creating ejb container
javax.naming.NamingException [Root exception is javax.naming.NameNotFoundException]
at com.sun.enterprise.naming.NamingManagerImpl.bindObjects(NamingManagerImpl.java:485)
at com.sun.ejb.containers.BaseContainer.setupEnvironment(BaseContainer.java:2628)
at com.sun.ejb.containers.BaseContainer.<init>(BaseContainer.java:629)
at com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:163)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:515)
at com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:490)
at com.sun.enterprise.server.EJBModuleLoader.load(EJBModuleLoader.java:158)
at com.sun.enterprise.server.AbstractManager.load(AbstractManager.java:206)
at com.sun.enterprise.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.java:198)
at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:326)
at com.sun.enterprise.server.ondemand.OnDemandServer.onStartup(OnDemandServer.java:112)
at com.sun.enterprise.server.PEMain.run(PEMain.java:326)
at com.sun.enterprise.server.PEMain.main(PEMain.java:260)
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.enterprise.server.PELaunch.main(PELaunch.java:272)
Caused by: javax.naming.NameNotFoundException
at com.sun.enterprise.naming.TransientContext.resolveContext(TransientContext.java:255)
at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:178)
at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:61)
at com.sun.enterprise.naming.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:98)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:309)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.sun.enterprise.naming.NamingManagerImpl.bindObjects(NamingManagerImpl.java:469)
... 17 more
CORE5021: Application NOT loaded: [Chat-ejb]
WEB0302: Starting Sun-Java-System/Application-Server.
WEB0100: Loading web module [__default-admingui] in virtual server [__asadmin] at [/]
WEB0100: Loading web module [adminapp] in virtual server [__asadmin] at [/web1]
WEB0100: Loading web module [admingui] in virtual server [__asadmin] at [/asadmin]
WEB0100: Loading web module [amserver] in virtual server [server] at [/amserver]
Initializing Sun's JavaServer Faces implementation (1.2_02-b03-FCS) for context ''
Completed initializing Sun's JavaServer Faces implementation (1.2_02-b03-FCS) for context ''
Initializing Sun's JavaServer Faces implementation (1.2_02-b03-FCS) for context '/asadmin'
Completed initializing Sun's JavaServer Faces implementation (1.2_02-b03-FCS) for context '/asadmin'
WEB0712: Starting Sun-Java-System/Application-Server HTTP/1.1 on 8080
WEB0712: Starting Sun-Java-System/Application-Server HTTP/1.1 on 8181
WEB0712: Starting Sun-Java-System/Application-Server HTTP/1.1 on 4848
About to load the system app: __JWSappclients
WEB0100: Loading web module [__JWSappclients:sys.war] in virtual server [server] at [/__JWSappclients]
Using MQ RA for Broker lifecycle control
JMS Service Connection URL is :mq://t1:7676/
MQJMSRA_RA1101: SJSMQ JMS Resource Adapter starting...
EB-start:brokerProps={imq.instancename=imqbroker, imq.jmx.rmiregistry.port=8686, BrokerArgs=-port 7676 -name imqbroker -imqhome D:\Sun\AppServer\imq\bin\.. -varhome D:/sun/AppServer/domains/domain1\imq -useRmiRegistry -rmiRegistryPort 8686, imq.jmx.rmiregistry.use=true, imq.portmapper.port=7676}
[07/nov/2007:18:35:03 CET]
================================================================================
Sun Java(tm) System Message Queue 4.0
Sun Microsystems, Inc.
Version: 4.0 (Build 27-a)
Compile: Thu 03/02/2006
Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved.
SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
This product includes code licensed from RSA Data Security.
================================================================================
Java Runtime: 1.6.0_03 Sun Microsystems Inc. D:\sun\Java\jdk1.6.0_03\jre
[07/nov/2007:18:35:03 CET] IMQ_HOME=D:\sun\AppServer\imq
[07/nov/2007:18:35:03 CET] IMQ_VARHOME=D:\sun\AppServer\domains\domain1\imq
[07/nov/2007:18:35:03 CET] Windows XP 5.1 x86 t1 (1 cpu) pepepc
[07/nov/2007:18:35:03 CET] Java Heap Size: max=506816k, current=46944k
[07/nov/2007:18:35:03 CET] Arguments: -port 7676 -name imqbroker -imqhome D:\Sun\AppServer\imq\bin\.. -varhome D:/sun/AppServer/domains/domain1\imq -useRmiRegistry -rmiRegistryPort 8686
[07/nov/2007:18:35:04 CET] [B1060]: Loading persistent data...
[07/nov/2007:18:35:04 CET] Using built-in file-based persistent store: D:\sun\AppServer\domains\domain1\imq\instances\imqbroker\
[07/nov/2007:18:35:04 CET] [B1189]: Cluster Service feature is not available
[07/nov/2007:18:35:04 CET] [B1039]: Broker "imqbroker@t1:7676" ready.
MQJMSRA_EB1101: run:EMBEDDED broker started with code =0
MQJMSRA_RA1101: SJSMQ JMS ResourceAdaapter configuration=
raUID =null
brokerType =EMBEDDED
brokerInstanceName =imqbroker
brokerBindAddress =null
brokerPort =7676
brokerHomeDir =D:\Sun\AppServer\imq\bin\..
brokerVarDir =D:/sun/AppServer/domains/domain1\imq
brokerJavaDir =D:/sun/Java/jdk1.6.0_03
brokerArgs =null
brokerStartTimeout =60000
adminUsername =admin
adminPassFile =E:\tempWin\asmq21980.tmp
useJNDIRmiServiceURL =true
rmiRegistryPort =8686
startRmiRegistry =false
useSSLJMXConnector =true
brokerEnableHA =false
clusterId =null
brokerId =null
jmxServiceURL =null
dbType =null
dbProps ={}
dsProps ={}
ConnectionURL =
UserName =guest
ReconnectEnabled =true
ReconnectInterval =5000
ReconnectAttempts =3
AddressListBehavior =RANDOM
AddressListIterations =3
InAppClientContainer =false
InClusteredContainer =false
GroupName =null
MQJMSRA_RA1101: start:SJSMQ JMSRA Connection Factory Config={imqOverrideJMSPriority=false, imqConsumerFlowLimit=1000, imqOverrideJMSExpiration=false, imqAddressListIterations=3, imqLoadMaxToServerSession=true, imqConnectionType=TCP, imqPingInterval=30, imqSetJMSXUserID=false, imqConfiguredClientID=, imqSSLProviderClassname=com.sun.net.ssl.internal.ssl.Provider, imqJMSDeliveryMode=PERSISTENT, imqConnectionFlowLimit=1000, imqConnectionURL=http://localhost/imq/tunnel, imqBrokerServiceName=, imqJMSPriority=4, imqBrokerHostName=localhost, imqJMSExpiration=0, imqAckOnProduce=, imqEnableSharedClientID=false, imqAckTimeout=0, imqAckOnAcknowledge=, imqConsumerFlowThreshold=50, imqDefaultPassword=guest, imqQueueBrowserMaxMessagesPerRetrieve=1000, imqDefaultUsername=guest, imqReconnectEnabled=false, imqConnectionFlowCount=100, imqAddressListBehavior=PRIORITY, imqReconnectAttempts=3, imqSetJMSXAppID=false, imqConnectionHandler=com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPStreamHandler, imqSetJMSXRcvTimestamp=false, imqBrokerServicePort=0, imqDisableSetClientID=false, imqSetJMSXConsumerTXID=false, imqOverrideJMSDeliveryMode=false, imqBrokerHostPort=7676, imqQueueBrowserRetrieveTimeout=60000, imqSetJMSXProducerTXID=false, imqSSLIsHostTrusted=false, imqConnectionFlowLimitEnabled=false, imqReconnectInterval=5000, imqAddressList=localhost:7676, imqOverrideJMSHeadersToTemporaryDestinations=false}
MQJMSRA_RA1101: SJSMQ JMSRA Started
endpoint.determine.destinationtype
NAM0008 : Invalid Destination: jndi/Topic for java:comp/env/jms/Topic
EJB5090: Exception in creating EJB container [javax.naming.NamingException [Root exception is javax.naming.NameNotFoundException]]
appId=Chat moduleName=Chat-ejb_jar ejbName=publicarBean
LDR5004: UnExpected error occured while creating ejb container
javax.naming.NamingException [Root exception is javax.naming.NameNotFoundException]
at com.sun.enterprise.naming.NamingManagerImpl.bindObjects(NamingManagerImpl.java:485)
at com.sun.ejb.containers.BaseContainer.setupEnvironment(BaseContainer.java:2628)
at com.sun.ejb.containers.BaseContainer.<init>(BaseContainer.java:629)
at com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:163)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:515)
at com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:490)
at com.sun.enterprise.server.ApplicationLoader.load(ApplicationLoader.java:184)
at com.sun.enterprise.server.TomcatApplicationLoader.load(TomcatApplicationLoader.java:113)
at com.sun.enterprise.server.AbstractManager.load(AbstractManager.java:206)
at com.sun.enterprise.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.java:204)
at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:326)
at com.sun.enterprise.server.ondemand.OnDemandServer.onStartup(OnDemandServer.java:112)
at com.sun.enterprise.server.PEMain.run(PEMain.java:326)
at com.sun.enterprise.server.PEMain.main(PEMain.java:260)
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.enterprise.server.PELaunch.main(PELaunch.java:272)
Caused by: javax.naming.NameNotFoundException
at com.sun.enterprise.naming.TransientContext.resolveContext(TransientContext.java:255)
at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:178)
at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:61)
at com.sun.enterprise.naming.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:98)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:309)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.sun.enterprise.naming.NamingManagerImpl.bindObjects(NamingManagerImpl.java:469)
... 18 more
Registering ad hoc servlet: WebPathPath: context root = "/Chat", path = "/Chat-app-client'
Java Web Start services started for application com.sun.enterprise.appclient.jws.ApplicationContentOrigin@aabc2d registration name=Chat
[email protected]56b4 registration name=Chat, context root=/Chat/Chat-app-client, module name=
, parent=Chat
CORE5021: Application NOT loaded: [Chat]
SMGT0007: Self Management Rules service is enabled
Application server startup complete.
JBISE6013: JavaEEServiceEngine : Java EE Service Engine started successfully.
CORE5024: EJB module [Chat-ejb] unloaded successfully!
DeployedItemRef postDeregistration failed. Load Balancer Monitoring MBeans might be lying around if this application is being load balanced
BPEL service engine started
ADM1064:The upload file at [E:\tempWin\s1astempdomain1server-162970426\Chat-ejb.jar] exists and will be overwritten.
ADM1006:Uploading the file to:[E:\tempWin\s1astempdomain1server-162970426\Chat-ejb.jar]
deployed with moduleid = Chat-ejb
ADM1041:Sent the event to instance:[ModuleDeployEvent -- enable ejb/Chat-ejb]
endpoint.determine.destinationtype
NAM0008 : Invalid Destination: jndi/Topic for java:comp/env/jms/Topic
EJB5090: Exception in creating EJB container [javax.naming.NamingException [Root exception is javax.naming.NameNotFoundException]]
appId=Chat-ejb moduleName=D__sun_AppServer_domains_domain1_applications_j2ee-modules_Chat-ejb ejbName=publicarBean
LDR5004: UnExpected error occured while creating ejb container
javax.naming.NamingException [Root exception is javax.naming.NameNotFoundException]
at com.sun.enterprise.naming.NamingManagerImpl.bindObjects(NamingManagerImpl.java:485)
at com.sun.ejb.containers.BaseContainer.setupEnvironment(BaseContainer.java:2628)
at com.sun.ejb.containers.BaseContainer.<init>(BaseContainer.java:629)
at com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:163)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:515)
at com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:490)
at com.sun.enterprise.server.EJBModuleLoader.load(EJBModuleLoader.java:158)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:219)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:174)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:406)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleEnabled(StandAloneEJBModulesManager.java:500)
at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:960)
at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:941)
at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:448)
at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:160)
at com.sun.enterprise.admin.server.core.AdminNotificationHelper.sendNotification(AdminNotificationHelper.java:128)
at com.sun.enterprise.admin.server.core.ConfigInterceptor.postInvoke(ConfigInterceptor.java:109)
at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:97)
at $Proxy1.invoke(Unknown Source)
at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:297)
at com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:56)
at com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:142)
at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:109)
at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:180)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:174)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:216)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:184)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:276)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
Caused by: javax.naming.NameNotFoundException
at com.sun.enterprise.naming.TransientContext.resolveContext(TransientContext.java:255)
at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:178)
at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:61)
at com.sun.enterprise.naming.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:98)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:309)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.sun.enterprise.naming.NamingManagerImpl.bindObjects(NamingManagerImpl.java:469)
... 54 more
CORE5020: Error while loading ejb module
{code}
I know it is very large. I think the error it is in this line.
{code}
NAM0008 : Invalid Destination: jndi/Topic for java:comp/env/jms/Topic
EJB5090: Exception in creating EJB container [javax.naming.NamingException [Root exception is javax.naming.NameNotFoundException]]
{code}
also I am going to put the code.
file PublicarBean.java
{code}
package org.pepes;
import com.sun.tools.ws.processor.model.java.JavaArrayType;
import javax.annotation.Resource;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.jms.ConnectionFactory;
import javax.jms.QueueConnectionFactory;
import javax.jms.Topic;
import javax.naming.NamingException;
* @author pepes
@Stateless(mappedName="ejb/publicar")
public class publicarBean implements org.pepes.publicarRemote {
/** Creates a new instance of publicarBean */
@Resource(name="jms/QueueConnectionFactory")
private QueueConnectionFactory connectionFactory;
@Resource(name="jms/Topic", mappedName="jndi/Topic")
private Topic topic;
private javax.naming.InitialContext ctx;
public publicarBean() {
public void creaMensaje() throws javax.naming.NamingException , javax.jms.JMSException {
try {
javax.naming.InitialContext ctx = new javax.naming.InitialContext();
this.connectionFactory = (javax.jms.QueueConnectionFactory)ctx.lookup("jms/QueueConnectionFactory");
this.topic = (javax.jms.Topic)ctx.lookup("jms/Topic");
javax.jms.Connection connection = this.connectionFactory.createConnection();
javax.jms.TopicSession ts = (javax.jms.TopicSession)connection.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
javax.jms.TopicPublisher tp = ts.createPublisher(this.topic);
javax.jms.TextMessage msg = ts.createTextMessage();
for (int i = 0; i<3;i++) {
msg.setText("Prueba: " + i);
tp.publish(msg);
catch (javax.jms.JMSException jmex) {
throw jmex;
{code}
the file publicarRemote.java
{code}
package org.pepes;
import javax.ejb.Remote;
* This is the business interface for publicar enterprise bean.
@Remote
public interface publicarRemote {
public void creaMensaje() throws javax.naming.NamingException , javax.jms.JMSException;
{code}
file mensaje.java
{code}
package org.pepes;
import javax.annotation.Resource;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.ejb.MessageDrivenContext;
import javax.jms.Message;
import javax.jms.MessageListener;
* Entity class Mensaje
* @author pepes
@MessageDriven(mappedName = "jms/Mensaje", activationConfig = {
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
public class Mensaje implements MessageListener {
/** Creates a new instance of Mensaje */
@Resource
private MessageDrivenContext mdc;
public Mensaje() {
public void onMessage(Message message) {
javax.jms.TextMessage msg = null;
try {
if (message instanceof javax.jms.TextMessage) {
msg = (javax.jms.TextMessage) message;
System.out.println(msg.getText());
} else {
System.out.println("Message of wrong type: "
+ message.getClass().getName());
} catch (javax.jms.JMSException e) {
e.printStackTrace();
mdc.setRollbackOnly();
} catch (Throwable te) {
te.printStackTrace();
{code}
the file prueba.jsp
{code}
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%--
The taglib directive below imports the JSTL library. If you uncomment it,
you must also add the JSTL library to the project. The Add Library... action
on Libraries node in Projects view can be used to add the JSTL 1.1 library.
--%>
<%--
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
--%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>JSP Page</h1>
<%--
This example uses JSTL, uncomment the taglib directive above.
To test, display the page like this: index.jsp?sayHello=true&name=Murphy
--%>
<%--
<c:if test="${param.sayHello}">
<!-- Let's welcome the user ${param.name} -->
Hello ${param.name}!
</c:if>
--%>
<%
try {
javax.naming.InitialContext ctx = new javax.naming.InitialContext();
org.pepes.publicarRemote publisher = (org.pepes.publicarRemote)ctx.lookup("ejb/publicar");
if (publisher==null) {
System.out.println("INFO: Es null");
else {
System.out.println("INFO: No es null");
publisher.creaMensaje();
} catch (javax.naming.NamingException ex) {
System.out.println("ERROR naming: " + ex.getMessage());
catch (javax.jms.JMSException jmex) {
System.out.println("ERROR jms: " + jmex.getMessage());
catch (java.lang.NullPointerException nullex) {
System.out.println("ERROR null: " + nullex.getMessage());
%>
</body>
</html>
{code}
I think the problem is because i don't put destination address. if it is so, the true where do I put this address?. if not where is the problem?
I hope your help.
Thanks you in advanced.Hi,
Did you create your destinations in your application server? It seems that the destinations such as topics and queues are not created. First you should create them and then start using them.
For example, in here, it says that jndi/Topic is not valid. To check if the destinations are valid or not; you can do it either through the graphical user interface or the command line console. -
How do I use a JMS MessageSelector with application-specific properties
According to a couple of JMS references (Sun, Oreilly) and the oracle documentation (under the heading "Using Oracle Java Messaging Service (JMS) to Access AQ", page 102 of 1082 , Application Developers Guide - Advanced Queuing, Release 2 (8.1.6))
Standard JMS Features
"Message selection based on message header fields/properties"
Is there a special syntax for using application-specific (user defined) JMS message properties as message selectors in Oracle 8.1.7?
I've tried to create a message selector based on a custom property that I set, i.e. "username != 'William'". (example from O'Reilly JMS book, pg. 44)
I always get a JMS-159: Invalid selector Selector Parse error unless the property is a JMS-Defined property. i.e., " JMSMessageID = 'ID:9789D65E215B3613E034080020B1456E' " works fine.
From the docs and the oter examples, I figure application-specific (user-defined) properties are legal.
Thans for any help in advance.Well I found an article in another forum that states in oracle 8i, message selectors are only supported on JMSCorrelationID and JMSMessageID
(9i will have/has the full JMS spec support for message selectors , or so the response to the message says)
Thanks anyway
(Aricle Is In Products > Database > Oracle Advanced Queueing
Title is JMS AQ: selector in createReceiver does not work) -
Using MySQL DB on Weblogic 10.3.2 for JMS Store and etc.
Hi,
I am planning to use MySQL DB w Weblogic 10.3.2 server.
I am planning to use Persistent JMS Destinations and planning to use MySQL Datasource for JMS store.
Can anyone please help me understand any serious issues or considerations of this combination?
Thanks
SagarHi,
I am planning to use MySQL DB w Weblogic 10.3.2 server.
I am planning to use Persistent JMS Destinations and planning to use MySQL Datasource for JMS store.
Can anyone please help me understand any serious issues or considerations of this combination?
Thanks
Sagar
Maybe you are looking for
-
Non-root is not associate with root
I am working to setup the non-root associate with root. I have checked every configuration from the root are the same as non-root. Accept it set to non-root. - It is the same VLAN, SSID, authentication is open. I have encryption from both sides are t
-
Accessing Time Capsule shared drive from Vista
When running Vista in Bootcamp on my late 2008 Macbook Pro, I can see the shared network drive on the Time Capsule, but when I try to access it it just freezes Windows Explorer and I have to forcibly terminate the explorer process. Is there a trick t
-
How to use phone (GPS?) to measure points
Hi If I had my phone such as an iphone and I wanted to measure the length of something I could put it at one end of the item, click something and put it at the other end of the thing I want measured and it would tell me the length of that object. Is
-
How can I opt-out of Windows Deployment?
I acquired the hacker in January. In February both of my computers were destroyed. I removed ALL forms of networking from my house -- TWC, all of my routers and adapters, etc. I went to Best Buy and bought a new computer, then another, then 2 more
-
Source system is already exist
Hi, We are facing an issue with source system creation. we have already created the RFC connetions between BW & ECC and there is no issue in RFC. while creating the source system in RSA1 it giving the error Source system is already exist. But there i