JMS Message Bridge with MQ, only BytesMessage available ?
I have successfully set up bridging between MQ and JMS, and have an MDB that receives messages via the bridge when a message producer puts messages on the MQ-queue. Ideally, I would like to receive MapMessages and not BytesMessages which seems to be the case. Is this at all possible ? It is not clear to me if this is determined by how messages are delivered to the MQ-queue or if it is a bridge configuration issue. The message producer uses the MQ Java API and not JMS to produce and publish messages.
The bridge uses the standard JMS API to dequeue the messages from MQ and provides no vendor specific tuning, so as long as IBM MQ supplies a map message in the first place things should work. In other words, if there's any special configuration required to get MQ to deliver map messages, you'll need to tune MQ, not WebLogic.
Tom
Bridges aren't often required for receiving from non-WebLogic JMS. See
http://e-docs.bea.com/wls/docs81/faq/interop.html
Similar Messages
-
JMS Message Bridge - WLS to MQ
Hi,
Subsequent to my last posts on Foreign JMS Server setup (where I had to receive a msg from a remote MQ Queue), now I have a requirement to post messages to an remote MQ Queue for a diff application.
As a POC, I configured the JMS Message Bridge with bridge source as my local JMS queue and bridge destination as the Remote MQ Queue and it works fine as expected !!
just have couple of questions on that -
1. For a long time, I was struggling with this error on server startup
<BEA-190032> << eis/jms/WLSConnectionFactoryJNDINoTX > ResourceAllocationException thrown by resource adapter on call to ManagedConnectionFactory.createManagedConnection(): "javax.resource.ResourceException: Failed to start the connection ">
Then I realized from the server log that the actual reason was authentication failure in MQ Queue Manager :
JMSWMQ2013: The security authentication was not valid that was supplied for QueueManager '' with connection mode 'Client' and host name '77.40.190.130'. Please check if the supplied username and password are correct on the QueueManager you are connecting to AND
JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
Since this MQ setup is managed by someone else, when they pass on the .binding file after creating queuemanager, queue, etc, Should I also ask them for the username and password for the QM?? I am not sure if this is a part of the .binding file.
2. Some doubts around the QOS. As I understood, I am using the No-Transaction Adapter. This means I can use QOS as either "Atmost once" or "Duplicate OK". The latter seems to be ok so that I dont lost messages in any case. But I am yet to find out if the other application is ok to handle duplicates.
But is there a restriction/limitation to use "Exactly Once" ?? I noticed that there is also an XA-Transaction Adapter in WLS. Is it not possible to use that with MQ?
Thanks in advance.
best regards,
MuraliIn your binding file QCF or XAQCF definition , you will see a Channel field since you are using a client mode to connect to the queue manager. This channel is called a Server Connection Channel [ SVRCONN]. At the queue manager side of things, when this SVRCONN is defined, MQ Admin teams tend to define an attribute called MCAUSER. In this setup the userid used for authorisation at queue manager is the following in the below precedence:
1. If MCAUSER is defined in the channel, that will be the user id and it overrides any security context sent from client application. This user id should have sufficient permissions to connect to queue manager , get , put. The MQ admin teams on certain platforms will be able to get the exact permission that is missed from the queue manager error logs when a 2035 security exception occurs.
2. If no MCAUSER is defined then the userid passed in the createConnection JMS call will be the user context used.
I am not exactly sure of the behaviour when no MCAUSER and no user id in createConnection calls, but i think it takes the user of the MQ Listener process which starts the SVRCONN channel instance when a client initiates the connection.
So for your situation, it will be worth start checking with how the MQ side configuration is. This issue tends to be a very common issue with client applns connecting to qmgr. -
HELP with JMS message bridge to MSMQ
Can anyone offer suggestions on how to obtain/build a JMS messaging bridge to MSMQ.
I see that WL has a Messaging Bridge but only for certain foreign messaging systems.
FioranoMQ have a JMS Implementation with a bridge to MSMQ but a complete JMS implementation
seems overkill and is costly.
We already have Weblogic's JMS implementation & just want messages to appear on
a JMS Queue when they are put in a MSMQ queue. A message driven bean will then
trigger from the JMS queue.
It is rare to hear of MSMQ when it comes to messaging.
(I guess MSMQ users typically stay in MS world?)
I suggest building a minimal subset JMS wrapper. Customers
have had success with this approach with other queuing products.
If you can implement asynchronous (onMessage) then the same
wrapper can be used to plug into MDBs as well as into the bridge.
You might find that there already is open source
for these wrappers, search the web.
Take note that interop is what web-services is supposed
to be all about. You might want to investigate writing
an MSMQ app that in turn invokes a WebLogic web-service
that finally enqueues to a WL queue.
Another possibility is to write an MSMQ app that invokes
WebLogic's JMS C client to put messages into a JMS
queue. The JMS C client is due out
shortly, perhaps this week, perhaps within the next
few weeks. It will be posted to dev2dev and work
with 7.0.
Tom, BEA
Pete wrote:
> Can anyone offer suggestions on how to obtain/build a JMS messaging bridge to MSMQ.
> I see that WL has a Messaging Bridge but only for certain foreign messaging systems.
>
>
> FioranoMQ have a JMS Implementation with a bridge to MSMQ but a complete JMS implementation
> seems overkill and is costly.
>
> We already have Weblogic's JMS implementation & just want messages to appear on
> a JMS Queue when they are put in a MSMQ queue. A message driven bean will then
> trigger from the JMS queue.
-
Using JMS Messaging Bridge in BPEL
Hi
I wanted to create a bpel process to put a message on to a JBoss queue on an external system.
I could see from many forums that JMS Messaging bridge is a suitable option to go ahead. I could create new JMS destinatiosn and a JMS bridge on top of that.
Can some once help me out with a sample bpel process inidcating how to use the JMS bridge within the bpel prpcess.
Thanks in advanceHi
You can define the same queue in both domains.
In domain A ( the source ) create the Origin of bridge
In domain A too ( the source) create the destination of bridge ( pointing to address and port of domain B)
In domain A create the bridge ( joining source and destination )
In domain A , deploy the connector ... a .rar file
Best Regards
Jin
PD: this doesn?t affect the code of your app. -
Messaging Bridge with MQ using SSL
Hi everybody,
I'm using JMS messaging bridge to transfer messages from WLS 10.3.6 running on a Solaris machine to remote WebSphere MQ 7 running on an AIX machine. Weblogic reads the configuration of remote MQ from a text file, called .bindings, created using the MQ JMSAdmin tool. The file defines a connection factory with the IP address, port, queue and queue manager name and other important definitions of the remote MQ.
The thing is that the bridge starts pretty well and transfer messages normally, but I need to change the configuration to use SSL. To do it I just added the parameter SSLCIPHERSUITE(SSL_RSA_WITH_RC4_128_MD5) and thought it was enough to achieve the goal.
<May 12, 2014 3:05:45 PM BRT> <Debug> <MessagingBridgeRuntimeVerbose> <BEA-000000> <Exception:
com.ibm.mq.MQException: MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
Wondering the error could be relatedo to an SSL exception, I enabled the SSL debugging (-Dssl.debug=true) to the managed server, but there were no evidences of an SSL handshake of Weblogic and MQ, so there is no SSL communication between the peers.
Does anybody know if this kind of communication is feasible? What may I be missing here?
Tks!Hi everybody,
I'm using JMS messaging bridge to transfer messages from WLS 10.3.6 running on a Solaris machine to remote WebSphere MQ 7 running on an AIX machine. Weblogic reads the configuration of remote MQ from a text file, called .bindings, created using the MQ JMSAdmin tool. The file defines a connection factory with the IP address, port, queue and queue manager name and other important definitions of the remote MQ.
The thing is that the bridge starts pretty well and transfer messages normally, but I need to change the configuration to use SSL. To do it I just added the parameter SSLCIPHERSUITE(SSL_RSA_WITH_RC4_128_MD5) and thought it was enough to achieve the goal.
<May 12, 2014 3:05:45 PM BRT> <Debug> <MessagingBridgeRuntimeVerbose> <BEA-000000> <Exception:
com.ibm.mq.MQException: MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
Wondering the error could be relatedo to an SSL exception, I enabled the SSL debugging (-Dssl.debug=true) to the managed server, but there were no evidences of an SSL handshake of Weblogic and MQ, so there is no SSL communication between the peers.
Does anybody know if this kind of communication is feasible? What may I be missing here?
Tks! -
Significance of async-enabled option of jms-messaging-bridge
Hi Folks !!
I have a question regarding JMS-MESSAGING-BRIDGES:
What difference will async-enabled = true | false will make to the bridge? Which option will be good from performance point of view ?
Thanks in advance.
Edited by: 994778 on Mar 19, 2013 7:05 AMAs you know, the bridge acts as a receiver from the source destination and a sender to the target destination. When async-enabled is set to true, the bridge works as an asynchronous listener to the source destination, while otherwise it acts as a synchronous receiver. In other words, the former is a push mode and the latter is a poll mode. The sync mode does batching while async mode does not. There are a couple of things that you need to consider while determining which mode is better, such as the desired QOS of the bridge, and whether you are bridging between wls destinations or a WLS destination to/from a 3rd party destination. For example, if you requires exactly-once QOS and your source destination is not a WLS JMS destination, you have to use sync mode; actually the bridge internally will switch to sync mode even if you set it to async mode.
You can find the tuning guide for the messaging bridge at
http://docs.oracle.com/cd/E17904_01/web.1111/e13814/bridgetuning.htm#g1153237
Regards,
Dongbo -
JMS Messaging Bridge ( communication across domains)
Following is the Scenario
We have 2 Weblogic domains, Domain A ( running on port 2000) and Domain B (running on port 3000)
In Domain A I want to look up a Queue which is in Domain B and send a message on that that Queue.
So the requirement is to send message from one domain to other domain ( i.e sending message across domains )
I have read on forum that this is possible using JMS Messaging Bridge.Can any body please guide me or provide some sample code for this.
Thanks in advance.
Regards
~YogeshHi
You can define the same queue in both domains.
In domain A ( the source ) create the Origin of bridge
In domain A too ( the source) create the destination of bridge ( pointing to address and port of domain B)
In domain A create the bridge ( joining source and destination )
In domain A , deploy the connector ... a .rar file
Best Regards
Jin
PD: this doesn?t affect the code of your app. -
MQ 6 WLS 9.2 JMS Message Bridge Error
I tried to set up a JMS message bridge between MQ 9.2 and WLS 9.2 collocated on the same server following the BEA example:
1.Create local queue on MQ
2.Bind queue using JMSAdmin
3.Create JMS bridge betwen a source destination using JNDI name in #2 and a local WLS queue.
Here is the WLS config:
<messaging-bridge>
<name>MQ-WLSBridge</name>
<target>adminServer</target>
<source-destination>MQ-WLSSource</source-destination>
<target-destination>MQ-WLSTarget</target-destination>
<selector></selector>
<quality-of-service>Exactly-once</quality-of-service>
<qos-degradation-allowed>true</qos-degradation-allowed>
<durability-enabled>true</durability-enabled>
<idle-time-maximum>60</idle-time-maximum>
<async-enabled>true</async-enabled>
<started>true</started>
<preserve-msg-property>false</preserve-msg-property>
</messaging-bridge>
<jms-bridge-destination>
<name>MQ-WLSTarget</name>
<adapter-jndi-name>eis.jms.WLSConnectionFactoryJNDINoTX</adapter-jndi-name>
<classpath></classpath>
<connection-factory-jndi-name>com.MetaSolv.Security.QueueConnectionFactory</connection-factory-jndi-name>
<connection-url>t3://localhost:7005</connection-url>
<destination-jndi-name>WLSMessageQueue</destination-jndi-name>
</jms-bridge-destination>
<jms-bridge-destination>
<name>MQ-WLSSource</name>
<adapter-jndi-name>eis.jms.WLSConnectionFactoryJNDINoTX</adapter-jndi-name>
<classpath></classpath>
<connection-factory-jndi-name>QCF</connection-factory-jndi-name>
<initial-context-factory>com.sun.jndi.fscontext.RefFSContextFactory</initial-context-factory>
<connection-url>file:///usr/mqm/java/jndi</connection-url>
<destination-jndi-name>MQMessageQueus</destination-jndi-name>
</jms-bridge-destination>
I used a standalone JMS client and was able to connect to the MQ queue using the above JNDI name, factory so the MQ side was set up properly.
When I start up WLS, I saw that
<The messaging bridge "MQ-WLSBridge" has been successfully deployed.>
and the exception:
<MessagingBridge> <BEA-200042> <Bridge MQ-WLSBridge failed to connect to the source destination and will try again in 20 seconds. This could be a temporary condition unless the messages repeat several times. (java.lang.Exception: javax.resource.ResourceException: Failed to start the connection
at weblogic.jms.adapter.JMSBaseConnection.throwResourceException(JMSBaseConnection.java:1458)
at weblogic.jms.adapter.JMSBaseConnection.throwResourceException(JMSBaseConnection.java:1438)
at weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:403)
at weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:242)
at weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMSManagedConnectionFactory.java:190)
at weblogic.connector.security.layer.AdapterLayer.createManagedConnection(AdapterLayer.java:802)
at weblogic.connector.outbound.ConnectionFactory.createResource(ConnectionFactory.java:91)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1057)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:346)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:294)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:277)
at weblogic.connector.outbound.ConnectionPool.reserveResource(ConnectionPool.java:606)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:271)
at weblogic.connector.outbound.ConnectionManagerImpl.getConnectionInfo(ConnectionManagerImpl.java:352)
at weblogic.connector.outbound.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:307)
at weblogic.connector.outbound.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:115)
at weblogic.jms.adapter.JMSBaseConnectionFactory.getSourceConnection(JMSBaseConnectionFactory.java:92)
at weblogic.jms.bridge.internal.MessagingBridge.getConnections(MessagingBridge.java:809)
at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1042)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
)>
There is no error in the MQ logs. What is the problem?
CSC S <> wrote:
> I tried to set up a JMS message bridge between MQ 9.2 and WLS 9.2
> collocated on the same server following the BEA example: 1.Create local
> queue on MQ 2.Bind queue using JMSAdmin
> 3.Create JMS bridge betwen a source destination using JNDI name in #2 and
> a local WLS queue.
>
> Here is the WLS config:
> <messaging-bridge>
> <name>MQ-WLSBridge</name>
> <target>adminServer</target>
> <source-destination>MQ-WLSSource</source-destination>
> <target-destination>MQ-WLSTarget</target-destination>
> <selector></selector>
> <quality-of-service>Exactly-once</quality-of-service>
> <qos-degradation-allowed>true</qos-degradation-allowed>
> <durability-enabled>true</durability-enabled>
> <idle-time-maximum>60</idle-time-maximum>
> <async-enabled>true</async-enabled>
> <started>true</started>
> <preserve-msg-property>false</preserve-msg-property>
> </messaging-bridge>
>
> <jms-bridge-destination>
> <name>MQ-WLSTarget</name>
>
<adapter-jndi-name>eis.jms.WLSConnectionFactoryJNDINoTX</adapter-jndi-name>
> <classpath></classpath>
>
<connection-factory-jndi-name>com.MetaSolv.Security.QueueConnectionFactory</connection-factory-jndi-name>
> <connection-url>t3://localhost:7005</connection-url>
> <destination-jndi-name>WLSMessageQueue</destination-jndi-name>
> </jms-bridge-destination>
> <jms-bridge-destination>
> <name>MQ-WLSSource</name>
>
Hello,
First of all, your classpath doesn't seem to be correct. You need to add the
MQ jars in the bridge classpath. (DONT use the server classpath for
this!!!)
Secondly, enable debugging in Weblogic, which will give you some
information: -Dweblogic.Debug.DebugMessagingBridgeStartup=true -Dweblogic.Debug.DebugMessagingBridgeRuntime=true -Dweblogic.Debug.DebugMessagingBridgeRuntimeVerbose=true
IF you have more questions, pls reply also be mail.
Bart
Schelstraete Bart
[email protected]
http://www.schelstraete.org
http://www.linkedin.com/in/bschelst -
JMS Messaging Bridge Problems with WLS 8.1 sp2
Thank you in advance for your help.
I am trying to configure a JSM Messaging Bridge to connect an MQ Q to a Weblogic
Q. I have this working wonderfully in an environment without clustering but once
I try to deploy to a cluster, I am having two major problems.
1) When the managed servers are restarted, the messaging bridges immediately complain
about not being able to find the resource adaptor. After I manually un-target
the messaging bridge from the cluster and re-target them, they find the resource
adaptor but cannot connect to the source... which leads to my next problem.
2) The messaging bridges cannot connect to the source destination whether it is
an MQ Q or a Weblogic JMS Q does not matter. Here are the log entries that I
see relative:
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging STARTUP! Got Notification:weblogic.management.AttributeAddNotification:
Deployments from <null> to [Caching Stub]Proxy for eBusDev02:Location=secaServer01,Name=seca_OES_ADV_REPLY
Messaging Bridge,Type=MessagingBridgeConfig - weblogic.management.AttributeAddNotification[source=eBusDev02:Location=secaServer01,Name=secaServer01,Type=ServerConfig].>
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging STARTUP! creating bridge seca_OES_ADV_REPLY Messaging
Bridge.>
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging STARTUP! Bridge seca_OES_ADV_REPLY Messaging Bridge
is deployed as a migratable.>
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging RUNTIME! Initializging bridge seca_OES_ADV_REPLY Messaging
Bridge as a migratable.>
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging STARTUP! Bridge seca_OES_ADV_REPLY Messaging Bridge's
source configurations are:
AdapterJNDIName=eis.jms.WLSConnectionFactoryJNDIXA
Classpath=null
ConnectionURL = file:/e:/private/JNDI/eBusDev02
DestinationType = Queue
DestinationJNDIName = jms.oes.MQ-ADV-REPLYQ
InitialContextFactory = com.sun.jndi.fscontext.RefFSContextFactory
ConnectionFactoryJNDIName = jms.oes.MQ-QCF
.>
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging STARTUP! Bridge seca_OES_ADV_REPLY Messaging Bridge's
target configurations are:
AdapterJNDIName=eis.jms.WLSConnectionFactoryJNDIXA
Classpath=null
ConnectionURL = t3://30.135.10.63:8103,30.135.10.63:8104
DestinationType = Queue
DestinationJNDIName = jms/oes/ADV-REPLYQ
InitialContextFactory = weblogic.jndi.WLInitialContextFactory
ConnectionFactoryJNDIName = jms/oes/QCF
.>
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging STARTUP! Bridge seca_OES_ADV_REPLY Messaging Bridge
is successfully initialized.>
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging RUNTIME! Bridge seca_OES_ADV_REPLY Messaging Bridge
has been successfully initialized as a migratable.>
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging RUNTIME! Activating bridge seca_OES_ADV_REPLY Messaging
Bridge.>
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging RUNTIME! Bridge seca_OES_ADV_REPLY Messaging Bridge
has been successfully activated..>
####<Apr 1, 2004 4:38:44 PM EST> <Info> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '22' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <> <BEA-200033>
<Bridge "seca_OES_ADV_REPLY Messaging Bridge" is obtaining connections to the
two adapters.>
####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '22' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <> <BEA-200006>
<Messaging bridge debugging RUNTIME! Bridge seca_OES_ADV_REPLY Messaging Bridge
Getting source connection.>
####<Apr 1, 2004 4:38:44 PM EST> <Info> <MessagingBridge> <dv2kwls03> <secaServer01>
<ExecuteThread: '22' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <> <BEA-200042>
<Bridge seca_OES_ADV_REPLY Messaging Bridge failed to connect to the source destination
and will try again in 15 seconds. (java.lang.NullPointerException)>
I know the queues are up and I am pretty sure my MQ client configuration is correct.
Is there anyway to get more information about the NullPointerException or the
error being encountered?
Given that you have ruled out message backlogs, my first suspicion is that the leak has something to do with connection allocation. Does JMS stats reveal an application generated connection leak? Check to see if the current number of connections/sessions stays steady.
If this doesn't help, you can use a third party tool like OptimizeIt to get periodic snap-shots of memory usage and identify the leaked object (or create a reproducer and have customer support do it). A possible work-around is to modify your app to pool JMS connections/sessions for re-use - greatly reducing the number of connections created per day.
Tom -
Using Messaging Bridge with Distributed Destinations
I'm having some problems using Distributed Destinations with the Messaging Bridge in WLS 7.0sp2. Our configuration consists of the following:
* WLS Server1:
* JMS Server1:
* inbound queue
* outbound queue
* JMS Server2:
* inbound queue
* outbound queue
* WLS Server 2:
* JMS Server3:
* inbound queue
* outbound queue
A distributed destination is configured for the inbound and outbound queues.
Two messaging queues are configured so that bridge from WLS JMS to Tibco JMS using the distributed destinations.
Everything is working fine for the inbound, but we have found that the outbound messaging bridge is picking up messages from only one of the two JMS servers on the first WLS instance. When monitoring, it can be seen that there is no consumer registered against the second JMS server.
Any suggestions?
Hi Rob,
Consumers on distributed destinations are always pinned
to a single physical destination on creation. Only
producers can round-robin each message. When a
distributed destination is used as a source destination,
you will need to configure a bridge per distributed
destination. Alternatively, you can enable
forwarding between the physical queues, which automatically
forwards messages from physical queues with
no consumers to physical queues that have consumers
(but the extra hop impacts performance). For more information,
consult the JMS documentation.
Tom
Rob McArthur wrote:
> I'm having some problems using Distributed Destinations with the Messaging Bridge in WLS 7.0sp2. Our configuration consists of the following:
> * WLS Server1:
> * JMS Server1:
> * inbound queue
> * outbound queue
> * JMS Server2:
> * inbound queue
> * outbound queue
> * WLS Server 2:
> * JMS Server3:
> * inbound queue
> * outbound queue
>
> A distributed destination is configured for the inbound and outbound queues.
>
> Two messaging queues are configured so that bridge from WLS JMS to Tibco JMS using the distributed destinations.
>
> Everything is working fine for the inbound, but we have found that the outbound messaging bridge is picking up messages from only one of the two JMS servers on the first WLS instance. When monitoring, it can be seen that there is no consumer registered against the second JMS server.
>
> Any suggestions?
>
>
-
Hi
I am trying to configure a messaging bridge between weblogic 8.1 sp4 and jboss-4.0.2 on my local machine.
I have the bridge working for the following configuration:
Adapter JNDI Name: eis.jms.WLSConnectionFactoryJNDINoTX
Connection URL: jboss server URL with port
Initial Context Factory: org.jnp.interfaces.NamingContextFactory
Connection Factory JNDI Name: ConnectionFactory
Destination JNDI Name: queue/testQueue
and these jar's are in my weblogic class path:
[jboss_home]/client/jboss-common-client.jar
[jboss_home]/client/jbossmq-client.jar
[jboss_home]/client/jboss-system-client.jar
[jboss_home]/client/jboss-transaction-client.jar
[jboss_home]/client/jnp-client.jar
[jboss_home]/lib/concurrent.jar
[jboss_home]/client/log4j.jar
I have also deployed connector module jms-notran-adp.rar on my weblogic server.
I am using "Duplicate-okay" Quality Of Service and the bridge functions correctly.:^O
Now when I try to configure the bridge so that I can use "Exactly-once" Quality Of Service I use the following configuration:
Adapter JNDI Name: eis.jms.WLSConnectionFactoryJNDIXA
Connection URL: jboss server URL with port
Initial Context Factory: org.jnp.interfaces.NamingContextFactory
Connection Factory JNDI Name: XAConnectionFactory
Destination JNDI Name: queue/testQueue
and add these jar's in my weblogic class path:
[jboss_home]/client/jboss-common-client.jar
[jboss_home]/client/jbossmq-client.jar
[jboss_home]/client/jboss-system-client.jar
[jboss_home]/client/jboss-transaction-client.jar
[jboss_home]/client/jnp-client.jar
[jboss_home]/lib/concurrent.jar
[jboss_home]/client/log4j.jar
I also deployed the connector module jms-xa-adp.rar on my weblogic server.
The connection factory that I use for the weblogic destination is also "XA enabled".
The problem which I have is that no messages are transferred via the bridge and following error is printed out from the server :_|:
<2005/08/15 12:20:22 PM> <Error> <Connector> <BEA-190091> <Call to implementation of ManagedConnection.getXAResource in resource adapter with jndiName = eis/jms/WLSConnectionFactoryJNDIXA failed: java.lang.IllegalStateException: can only be called from server>
Could you please assist.
Thanks in advanceHi,
I am trying to do configure a bridge between weblogic 7.0 SP4 and JBOSS 4.0.3 SP1.
I have set the classpath as mentioned but I am getting an error
####<Apr 11, 2006 2:02:34 PM CEST> <Debug> <MessagingBridge> <DNI6> <dni6testser
ver> <ExecuteThread: '10' for queue: 'default'> <kernel identity> <> <200006> <M
essaging Bridge Debugging RUNTIME! Bridge WebOSSTEST Getting target connection>
####<Apr 11, 2006 2:02:34 PM CEST> <Warning> <Connector> <DNI6> <dni6testserver>
<ExecuteThread: '10' for queue: 'default'> <kernel identity> <> <190032> << Web
logic Messaging Bridge Adapter (XA)_eis/jms/WLSConnectionFactoryJNDIXA > Resourc
eAllocationException of javax.resource.ResourceException: Failed to start the co
nnection on createManagedConnection.>
####<Apr 11, 2006 2:02:34 PM CEST> <Info> <MessagingBridge> <DNI6> <dni6testserv
er> <ExecuteThread: '10' for queue: 'default'> <kernel identity> <> <200043> <Br
idge "WebOSSTEST" failed to connect to the target destination and will try again
in 60 seconds. (java.lang.Exception: javax.resource.spi.ResourceAllocationExcep
tion: CreateManagedConnection Error: Failed to start the connection
at weblogic.connector.common.internal.ConnectionPool.makeResources(Conne
ctionPool.java:1009)
at weblogic.connector.common.internal.ConnectionPool.getConnection(Conne
ctionPool.java:1769)
at weblogic.connector.common.internal.ConnectionPoolManager.getConnectio
n(ConnectionPoolManager.java:191)
at weblogic.connector.common.internal.ConnectionManagerImpl.allocateConn
ection(ConnectionManagerImpl.java:25)
at weblogic.jms.adapter.JMSBaseConnectionFactory.getTargetConnection(JMS
BaseConnectionFactory.java:126)
at weblogic.jms.bridge.internal.MessagingBridge.getConnections(Messaging
Bridge.java:764)
at weblogic.jms.bridge.internal.MessagingBridge.execute(MessagingBridge.
java:930)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:234)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:210)
-------------- Linked Exception ------------
javax.resource.ResourceException: Failed to start the connection
at weblogic.jms.adapter.JMSBaseConnection.throwResourceException(JMSBase
Connection.java:1273)
at weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnectio
n.java:357)
at weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:2
29)
at weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnect
ion(JMSManagedConnectionFactory.java:190)
at weblogic.connector.common.internal.ConnectionPool.makeResources(Conne
ctionPool.java:1002)
at weblogic.connector.common.internal.ConnectionPool.getConnection(Conne
ctionPool.java:1769)
at weblogic.connector.common.internal.ConnectionPoolManager.getConnectio
n(ConnectionPoolManager.java:191)
at weblogic.connector.common.internal.ConnectionManagerImpl.allocateConn
ection(ConnectionManagerImpl.java:25)
Does anyone have a solution -
Raising alert when JMS Messaging Bridge goes down
Hi
I am using Oracle FMW 11g and have implemented Messaging Bridge. Things are working fine now.
My requirement is whenever the Messaging Brdige goes down or goes into Inactive state, i wanted an alert / notification to be generated so that some action can be taken
Can some one send me the related inputs to implement the same
Thanks
vamsiHi Inaki,
Thank you for the note. but this feature is available from 7.3 SP13 but we are on 7.3 SP4.and it is very difficult to upgrade to SP13.
For us the webmethods will place the messages in their queue and PI pick those messages using the Sender JMS channel with following configuration,
transport protocol:Access JMS provider Generically
Message protocol:JMS1.X
Is there any other solution to trigger an alert when the thread is hung? Also is it possible to auto referesh a channel?
Regards,
Deepa -
JMS Messaging Bridge WLS8.1
Hello All,
I am trying to hook up 2 Queues as source and target destinations for the WLS8.1
Messaging Bridge[MB] functionality.
So when I send a message to Q1[source destination], the MB forwards the message
to Q2[target destination].
I have 1 MDB deployed and listening on Q2.
I verify the messages received via the admin console in wls8.1 as well as the
MDB I have deployed.
Thus, the MB works.
However, when I deploy a MDB on Q1 as well, the message is lost(not forwaded to
Q1 by the MB).
Assuming that the source destination is of type Queue, and this behaviour is expected,
I went to test with a Topic as source destination for the MB and a Queue as the
target destination for the MB.
However, I failed to receive any messages in the dest[Q2] via the MB.
This is with / without a MDB listening on the Topic[source destination].
One MDB is always listening on the Queue[target destination].
MB does not work.............
Can anyone help ?
TIA.
There is no native code specific to this use case, except
perhaps for IBM code, and I know of no issues.
Raja wrote:
> I have tested Messaging Bridge(jms-xa-adp.rar),Foreign JMS provider in WLS8.1-SP1
> on windows NT m/c.Can any body tell me whether there will any problem while setting
> up and running the same test on Solaris.
>
> Thanks in advance,
> Raja
-
Rate of transfer of message from jms messaging bridge
hi ,
the domain description given below
domain1
adm_domain1
managed01_domain1
managed02_domain1
cluster_domain1 consists of managed01_domain1,managed02_domain1
I have one distributed queue say queueA, with two member queue
queueA-managed01
queueA-managed02
i have a messaging bride bridgeA
source queue: queueA
target queue: target_queueA
synchronous bridge: true
batch size=10
batch interval=500ms
Now suppose the bridge bridgeA is stopped and souce queue has the following no. of messages
queueA-managed01=1000
queueA-managed02=1000
At this point if i start the bridge , can it be estimated/calculated how much time will it take for all the messages to go through based on batch size or batch interval, assuming a good network speed?Batch Size: The number of messages that are processed within one transaction. (This setting only applies to messaging bridges that work in synchronous mode and whose QOS requires two-phase transactions.)
Batch Interval:The maximum number of milliseconds that this messaging bridge will wait before sending a batch of messages in one transaction, regardless of whether the Batch Size has been reached or not. The default value of -1 indicates that the bridge will wait until the number of messages reaches the Batch Size before it completes a transaction.
So batch interval (500ms) means the time the bridge will wait before sending a batch of messages in one transaction regardless of whether the Batch Size has been reached or not.
So the question is in every 500ms how many mesages will it transfer in one transaction , is it 10 in this case? note that in the initial state each source physical member queue has 1000 messages each.
Regards
Deepak -
Unable to create a JMS Message bridge between Weblogic 12c and Weblogic 8.1
Hi,
I am unable to successfully create a Message Bridge between Weblogic 12.1.1.0 and Weblogic 8.1. The error message being received is:
eis/jms/WLSConnectionFactoryJNDINoTX > ResourceAllocationException generated by resource adapter on call to ManagedConnectionFactory.createManagedConnection(): "javax.resource.ResourceException: ConnectionFactory: failed to get initial context (InitialContextFactory =weblogic.jndi.WLInitialContextFactory, url = t3://localhost:8001, user name = System) ">
The error on the monitoring tab is WARN: failed to connect to target.
Both domains are deployed on one box for testing purposes. The bridge itself is deployed on Weblogic 12c. The areas of config that may be of interest are:
<server>
<name>AdminServer</name>
<listen-address></listen-address>
</server>
<messaging-bridge>
<name>Bridge</name>
<target>AdminServer</target>
<source-destination>JMSBridgeSource12c</source-destination>
<target-destination>JMSBridgeTarget81</target-destination>
<selector>Test</selector>
<quality-of-service>Exactly-once</quality-of-service>
<qos-degradation-allowed>false</qos-degradation-allowed>
<durability-enabled>true</durability-enabled>
<idle-time-maximum>60</idle-time-maximum>
<async-enabled>true</async-enabled>
<started>true</started>
<preserve-msg-property>false</preserve-msg-property>
</messaging-bridge>
<app-deployment>
<name>jms-xa-adp</name>
<target>AdminServer</target>
<module-type>rar</module-type>
<source-path>D:\ORACLE~3\WLSERV~1.1\server\lib\jms-xa-adp.rar</source-path>
<security-dd-model>DDOnly</security-dd-model>
</app-deployment>
<jms-bridge-destination>
<name>JMSBridgeSource12c</name>
<adapter-jndi-name>eis.jms.WLSConnectionFactoryJNDIXA</adapter-jndi-name>
<user-name>System</user-name>
<user-password-encrypted>{AES}nfFzhs+0J/O2Cenf0g4zDsDyvIKENMF7cZ5sAVUehX0=</user-password-encrypted>
<classpath></classpath>
<connection-factory-jndi-name>JMSConnectionFactory12c</connection-factory-jndi-name>
<connection-url>t3://localhost:7001</connection-url>
<destination-jndi-name>JMSQueue12c</destination-jndi-name>
</jms-bridge-destination>
<jms-bridge-destination>
<name>JMSBridgeTarget81</name>
<adapter-jndi-name>eis.jms.WLSConnectionFactoryJNDIXA</adapter-jndi-name>
<user-name>System</user-name>
<user-password-encrypted>{AES}eBkO46cHvtrzEraOMIOdXow6WvEAtA4NCUDTQ4mC+9w=</user-password-encrypted>
<classpath></classpath>
<connection-factory-jndi-name>JMSConnectionFactory81</connection-factory-jndi-name>
<connection-url>t3://localhost:8001</connection-url>
<destination-jndi-name>JMSQueue81</destination-jndi-name>
</jms-bridge-destination>
I have enforced global trust between the two domains. I have disabled the guest user on the 8.1 domain but can’t see where to do this on 12c.
Any suggestions would be much appreciated.
Regards
John
Edited by: 958336 on 13-Sep-2012 03:11Thanks for the recommendation. Unfortunately it did not help solve the problem.
I have managed to get a JMS bridge working between 12c and 8.1 by including the 8.1 weblogic.jar on the classpath. This setup was using eis.jms.WLSConnectionFactoryJNDINoTX.
After trying to use the adapter that supports transactions, WLSConnectionFactoryJNDIXA I received the following error:
java.lang.IllegalStateException: can only be called from server
Is this because the Weblogic 12c server now views the 8.1 server as being foreign?
Maybe you are looking for
-
Java Recursively sum up the Excel column values
I have a requirement to perform some calculations using java taking inputs from Excel file. My Excel file content is as follows: Row[0] ECOUT - EXPECTED VALUE | TotalDownPaymentAmount = 900.00 Row[1] ECIN - INPUT VALUE (ADD) | NetTradeAllowanceAm
-
HP Photosmart all in one c309a, trying to download driver/software for windows 7
I have a HP touchsmart 600PC windows 7 64bit AND a HP Photosmart Premium c309a printer/all in one. The Photosmart operating CD is not compatible with windows 7 so it said to go online to download the software and driver. I did this and the scanning
-
Issues in mapping objects from java to flex - using flex4
Hi, I have a class in java which i want to send to flex4 using BlazeDS as middleware. There are a few issues that i am facing and they are: When sending the object across (java to flex), the properties with boolean data type having value as true gets
-
In Advanced Actions, what does the Pause action do? (V7)
I see in the help that a new action has been added to Advanced Actions in Captivate V7, but I can't find out how to use it. What does Pause do? Can I specify a pause time? Here's what i'm trying to do. I want to click a button to make a graphic appea
-
Initiate process from Worklist
Hi! i'm working in a BPEL human workflow, with some escalation policies, i start de service from the BPEL console, but the process must be initiated by a user, there is a way to initiate/instance the process from the WorkList, the lower level employe