Looking up JMS destinations with clustered WLS
From scanning the postings, it appears that in a clustered WLS environment, the
JMS servers are not clustered. As a result, the JMS destinations must be unique
across all of the WLS in the cluster. In addition, there is no failover available
when a JMS server goes down.
With that stated, what I want to know is:
When establishing a JMS connection with a JMS server in a WLS cluster, do I need
to know the JNDI URL for each specific JMS server that is managing the destination(s)
I wish to pub/sub?
Or, is there a 'global' JNDI tree that I can reference and the clustered WLS behind
the scenes will route me to the appropriate JMS server?
If resolving the URL is a manual process, I will need to keep track of which destinations
reside on which JMS servers. This adds an additional maintenance point that I
would like to avoid if possible.
Thanks,
Bob.
One can use Connection Factory to establish connection to particular
destination (queue/topic). connection factories are clustered. so, one don't
need to have knowledge of particular WLS.
"Neal Yin" <[email protected]> wrote in message
news:[email protected]...
> Although there is only one JMS server instance, you can lookup it from
> anywhere in a cluster.
> In another words, JNDI tree is global in a WLS cluster. Just give cluster
> DNS name in your
> URL, you will be fine.
>
> -Neal
>
>
> "Bob Peroutka" <[email protected]> wrote in message
> news:[email protected]...
> >
> > From scanning the postings, it appears that in a clustered WLS
> environment, the
> > JMS servers are not clustered. As a result, the JMS destinations must
be
> unique
> > across all of the WLS in the cluster. In addition, there is no failover
> available
> > when a JMS server goes down.
> >
> > With that stated, what I want to know is:
> >
> > When establishing a JMS connection with a JMS server in a WLS cluster,
do
> I need
> > to know the JNDI URL for each specific JMS server that is managing the
> destination(s)
> > I wish to pub/sub?
> >
> > Or, is there a 'global' JNDI tree that I can reference and the clustered
> WLS behind
> > the scenes will route me to the appropriate JMS server?
> >
> > If resolving the URL is a manual process, I will need to keep track of
> which destinations
> > reside on which JMS servers. This adds an additional maintenance point
> that I
> > would like to avoid if possible.
> >
> > Thanks,
> >
> > Bob.
> >
> >
> >
>
>
Similar Messages
-
XA transactions with JMS connector (with BEA WLS)
Hello,
are XA transactions supported by JMS connector when communicating with BEA WLS (version 8.1)?
Thanks
TomasHi
Yes
Check this JMS FAQ
http://www.google.com/url?sa=t&ct=res&cd=1&url=https%3A%2F%2Fwww.sdn.sap.com%2Firj%2Fsdn%2Fgo%2Fportal%2Fprtroot%2Fdocs%2Flibrary%2Fuuid%2F604e2b64-e689-2910-64b3-ffd650f83756&ei=LcmERubLL4fgsALL6snWDw&usg=AFQjCNHbiooj-7G5g6w4tVVZQiRuQ5XQ_A&sig2=tpxbhUpIKR5oSe3aab8h4w
regards
krishna -
How do you create/edit/look up the password for executing
this command in the application server:
$ORACLE_HOME/j2ee/home#
java com.evermind.server.jms.JMSUtils -username admin
-password ??? destinations
I have tried every possible password but i still get :
javax.jms.JMSException:Unable to create a connection to HOSTNAME as user "admin".
Can anyone please tell me what do i need to enter the value for password or how to create a new one. I have tried ias_admin password value. i have also tried resetting the password (java -jar oc4j.jar install). But any of the above values do not work. I need the value for the password for using it in my JMS applications.
ThanksI see the same problem when I try to send a message to a Queue on Oracle AS 10G Java Edition (9.0.4).
I lookup the queue using JNDI with the following properties
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
env.put(Context.SECURITY_PRINCIPAL, "jazn.com/admin");
env.put(Context.SECURITY_CREDENTIALS, "welcome");
env.put(Context.PROVIDER_URL, "opmn:ormi://172.16.3.250:6003:home");
Using the above jndi properties I am able to lookup the QueueConnectionFactory and the Queue but when I try to invoke
queue.createConnection() ;
I get the error that says that
javax.jms.JMSException:Unable to create a connection to HOSTNAME as user "null".
So I tried
queue.createConnection("jazn.com/admin","welcome");
and then I get the following error
javax.jms.JMSException:Unable to create a connection to HOSTNAME as user "jazn.com/admin".
Has anyone sent a message to a queue running on the Oracle AS 10G (not oc4j standalone) from a remote client ??? -
MDB cannot connect to JMS destination using Foreign Server
Hi everyone,
I have configured foreign jms server in weblogic but when MDB tries to connect to specific queue, it gets the following exception:
I would really appreciate if anyone could help me.
<Sep 28, 2012 5:23:34 PM CEST> <Warning> <EJB> <BEA-010096> <The Message-Driven EJB: SmsReceiver is unable to connect to the JMS destination or bind to JCA resource adapter: xcg2/smsInQueue. Connection failed after 2 attempts. The MDB will attempt to reconnect/rebind every 10 seconds. This log message will repeat every 600 seconds until the condition clears.>
<Sep 28, 2012 5:23:34 PM CEST> <Warning> <EJB> <BEA-010061> <The Message-Driven EJB: SmsReceiver is unable to connect to the JMS destination: xcg2/smsInQueue. The Error was:
[EJB:011010]The JMS destination with the JNDI name: jmsxcg.out could not be found. Please ensure that the JNDI name in the weblogic-ejb-jar.xml or corresponding annotation is correct, and the JMS destination has been deployed.
javax.naming.InvalidNameException: jmsxcg.out: [LDAP: error code 34 - Invalid DN]; remaining name 'jmsxcg.out' NestedException Message is :jmsxcg.out: [LDAP: error code 34 - Invalid DN]>
MDB annotation looks like this:
@MessageDriven(name="SmsReceiver", mappedName="xcg2/smsInQueue",
activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class SmsReceiverBean implements MessageListener
weblogic-ejb-jar.xml excerpt:
<weblogic-enterprise-bean>
<ejb-name>SmsReceiver</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>10</max-beans-in-free-pool>
<initial-beans-in-free-pool>5</initial-beans-in-free-pool>
</pool>
<connection-factory-jndi-name>echoQueueConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
<transaction-descriptor>
<trans-timeout-seconds>600</trans-timeout-seconds>
</transaction-descriptor>
<dispatch-policy>MdbSmsWorkManager</dispatch-policy>
</weblogic-enterprise-bean>
and the configuration of foreign-server:
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-jms xmlns="http://www.bea.com/ns/weblogic/weblogic-jms">
<foreign-server name="serverr">
<sub-deployment-name>Subdeployment</sub-deployment-name>
<foreign-destination name="sms queue>
<local-jndi-name>xcg2/smsInQueue</local-jndi-name>
<remote-jndi-name>jmsxcg.out</remote-jndi-name>
</foreign-destination>
<foreign-connection-factory name="Connection Factory">
<local-jndi-name>echoQueueConnectionFactory</local-jndi-name>
<remote-jndi-name>QueueConnectionFactory</remote-jndi-name>
</foreign-connection-factory>
<initial-context-factory>com.tibco.tibjms.naming.TibjmsInitialContextFactory</initial-context-factory>
<connection-url>tibjmsnaming://xx.xx.xx.xx:7222</connection-url>
</foreign-server>
</weblogic-jms>
PS. I'm able to connect to the weblogic jndi, get connectionFactory echoQueueConnectionFactory, then lookup queue and grab messages so that's i suspect there is something wrong with configurationHmm - I'm not sure what's going on. Two thoughts --
Thought 1 - According to my (admittedly minimal) research, Tibco is complaining about a syntax error in the lookup name. Perhaps the problem has something to do with your use of a "." in the queue name "jmsxcg.out": WL or Tibco JNDI might be interpreting the "." as a subcontext or some-such. Perhaps try renaming the queue to "jmsxcg_out" throughout (in Tibco and in your Foreign JMS reference).
Thought 2 - It probably won't make a difference, but you might want try specifying the source destination via the "destinationJndiName" config property instead of via "mappedName".
@MessageDriven(
name = "MyMDB",
activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType",
propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destinationJndiName",
propertyValue = "MyQueue") // Ext. JNDI Name
)HTH,
Tom -
Using a Foreign JMS Destination as a JMS Event Generator Subscription
NOTE THIS IS BUMPED UP FROM ROBERT NORTON'S POST. I am having the same
problem here. From the wliconsole, the only queues listed to have events
generated from are local ones.
Hello,
I'm trying to create a workflow that is started by a JMS message queue
event.
I'm trying to use the WLIJMSEventGenTool in WebLogic 8.1 to listen to a
queue
on a remote WebLogic 8.1 installation, publish the incoming messages to
a channel,
then initiate a workflow by subscribing to that channel. Here's a copy
of my configuration
file for the tool:
<message-broker-jms-event-generator-def
source-jndi-name="SearchInputQueue"> <channel
name="/srm/sInput/sInput" /> </message-broker-jms-event-generator-def >
I tried to tackle this by configuring a foreign JMS Server, Connection
Factory,
and Destination using the Weblogic Admin Console. Below are the
parameters I used
to define the remote connection
Foreign JMS Server:
jndi initial context factory: weblogic.jndi.WLInitialContextFactory jndi
connection
url: //OPER1090:7001
Foreign connection factory:
local jndi name: FtsFactory remote jndi name:
weblogic.jws.jms.QueueConnectionFactory
(Are username and password required?)
Foreign JMS Destination:
local jndi name: SearchInputQueue remote jndi name:
InternalSearchInputQueue
After I try to deploy my generated JMS Event jar, I receive the
following error:
<Jun 6, 2003 10:31:50 AM EDT> <Warning> <EJB> <BEA-010061> <The
Message-Driven
E JB: SearchInputQueue-UnorderedMessageListener is unable to connect to
the JMS
de stination: SearchInputQueue. The Error was: [EJB:011010]The JMS
destination
with the JNDI name: SearchInputQueue could not b e found. Please ensure
that the
JNDI name in the weblogic-ejb-jar.xml is correct , and the JMS
destination has
been deployed.>
I'm pretty sure the problem is simply that my syntax is off somewhere in
my configuration.
I found the existing BEA documentation to be a bit too generic,
containing no
specific examples of the proper syntax to use for this task. Can anyone
offer
any advice or better, a working example? Any BEA reps out there?NOTE THIS IS BUMPED UP FROM ROBERT NORTON'S POST. I am having the same
problem here. From the wliconsole, the only queues listed to have events
generated from are local ones.
Hello,
I'm trying to create a workflow that is started by a JMS message queue
event.
I'm trying to use the WLIJMSEventGenTool in WebLogic 8.1 to listen to a
queue
on a remote WebLogic 8.1 installation, publish the incoming messages to
a channel,
then initiate a workflow by subscribing to that channel. Here's a copy
of my configuration
file for the tool:
<message-broker-jms-event-generator-def
source-jndi-name="SearchInputQueue"> <channel
name="/srm/sInput/sInput" /> </message-broker-jms-event-generator-def >
I tried to tackle this by configuring a foreign JMS Server, Connection
Factory,
and Destination using the Weblogic Admin Console. Below are the
parameters I used
to define the remote connection
Foreign JMS Server:
jndi initial context factory: weblogic.jndi.WLInitialContextFactory jndi
connection
url: //OPER1090:7001
Foreign connection factory:
local jndi name: FtsFactory remote jndi name:
weblogic.jws.jms.QueueConnectionFactory
(Are username and password required?)
Foreign JMS Destination:
local jndi name: SearchInputQueue remote jndi name:
InternalSearchInputQueue
After I try to deploy my generated JMS Event jar, I receive the
following error:
<Jun 6, 2003 10:31:50 AM EDT> <Warning> <EJB> <BEA-010061> <The
Message-Driven
E JB: SearchInputQueue-UnorderedMessageListener is unable to connect to
the JMS
de stination: SearchInputQueue. The Error was: [EJB:011010]The JMS
destination
with the JNDI name: SearchInputQueue could not b e found. Please ensure
that the
JNDI name in the weblogic-ejb-jar.xml is correct , and the JMS
destination has
been deployed.>
I'm pretty sure the problem is simply that my syntax is off somewhere in
my configuration.
I found the existing BEA documentation to be a bit too generic,
containing no
specific examples of the proper syntax to use for this task. Can anyone
offer
any advice or better, a working example? Any BEA reps out there? -
Error connecting WLS 10.3.1 JMS & MDBs with Oracle Advanced Queuing
I followed the guide at http://blogs.oracle.com/imc/2010/12/how_to_use_oracle_aq_with_message-driven_beans_in_weblogic.html. Since the AQ queues were already set up by SAs and had been working with stateless session beans, I assume they're OK for use with MDBs. Names had to be changed in the WLS foreign server definition, destinations & connection factories to match.
My MDB is:
package xxxx;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
@MessageDriven(name = "TestQueueListenerEJB")
public class TestQueueListener implements MessageListener
public void onMessage(Message message)
if ( message instanceof TextMessage )
try
System.out.println("AQMDBTest: text message " + ((TextMessage)message).getText() + " processed");
catch (JMSException e)
e.printStackTrace();
else
System.out.println("AQMDBTest: generic message " + message.toString() +
" of type " + message.getClass().getName() + " processed");
And the relevant portion of the weblogic-ejb-jar.xml is:
<weblogic-enterprise-bean>
<ejb-name>TestQueueListenerEJB</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>1</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>TestQueue</destination-jndi-name>
<connection-factory-jndi-name>TestQueueConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
So when I deploy this to my test domain I get an error:
<Feb 23, 2011 3:11:28 PM CST> <Warning> <EJB> <BEA-010061> <The Message-Driven EJB: TestQueueListenerEJB is unable to connect to the
JMS destination: TestQueue. The Error was:
Can not get destination information. The destination JNDI name is TestQueue, the provider URL is null>
The test connection of the datasource is successful.
What else could I have wrong? This is my first post to this topic. Please let me know what additional information I need to provide about this. Or if I've provided too much.
Thanks very much,
Jim GreethamOK. So I got my DBAs to create a new user with the necessary privs. Created a new queue, table, etc. I have been able to receive messages from it. So I have some looking to do in my production database queue definitions.
Jim -
Configuring WL JMS as a foreign JMS provider with security scope (WLS 8.1)
Hello, i have a problem accessing a queue from a foreign jms provider, if the queue has a security policy. I have the following scenario:
1) Server server1 in domain1 (WLS81) has a JMS Server with one queue queue1 with a security policy "Caller is a member of the group GROUP_QUEUE". There is also a user USER_QUEUE user defined, which belongs to the this group.
There is also a ConnectionFactory with "XA Connection Factory Enabled = true" configured.
The queue and the connection factory are visible in the jndi tree of this server.
2) Server server2 has a foreign jms server. Foreign JMSConnectionFactory and foreign JMSDestination refer to the jndi entries of server 1. For Foreign JMS Connection Factory username is set to USER_QUEUE. JNDI entries for foreign references are visible in jndi tree of this server.
I wrote a standalone client to store messages in the queue accessing server1 with USER_QUEUE sucessfully.
Now I try to deploy a MDB on server2 accessing the queue on server 1. I tried different versions of ejb-jar.xml/weblogic-ejb-jar.xml to access the queue, but with no luck.
scenario a): no security entries in both descriptors; weblogic-descr has entries <destination-jndi-name> and <connection-factory-jndi-name> pointing to the local jndi names. REsult:
<11.02.2005 19.16 Uhr CET> <Warning> <EJB> <BEA-010061> <The Message-Driven EJB:
CancelEasyMoneyBean is unable to connect to the JMS destination: prepaid.Cancel
EasyMoneyQueue. The Error was:
[EJB:010196]'weblogic.jms.common.JMSSecurityException: Access denied to resource
: type=<jms>, application=, destinationType=queue, resource=CancelEasyMoneyQueue
, action=receive' Linked exception = 'weblogic.jms.common.JMSSecurityException:
Access denied to resource: type=<jms>, application=, destinationType=queue, reso
urce=CancelEasyMoneyQueue, action=receive'
So entering username and password for ForeignJMSConnectionFactory doesn't do the trick.
scenario b:) trying to set additional security entries in both descriptors. I added a role queueUser to my mdb and to weblogic-descr a
<security-role-assignment>
<role-name>queueUser</role-name>
<principal-name>USER_QUEUE<principal-name>
</security-role-assignment>
I added the user USER_QUEUE and the group GROUP_QUEUE to server2.
Now server 1 throws exception after redeployment on server 2:
java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[USER_QUEUE, GROUP_QUEUE].
java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[USER_QUEUE, GROUP_QUEUE]
at weblogic.security.service.SecurityServiceManager.seal(SecurityService
Manager.java:680)
Has anybody an idea or a pointer how to define access from a mdb to a foreign queue using security ?
Thanks in advance,
RainerHello, i have a problem accessing a queue from a foreign jms provider, if the queue has a security policy. I have the following scenario:
1) Server server1 in domain1 (WLS81) has a JMS Server with one queue queue1 with a security policy "Caller is a member of the group GROUP_QUEUE". There is also a user USER_QUEUE user defined, which belongs to the this group.
There is also a ConnectionFactory with "XA Connection Factory Enabled = true" configured.
The queue and the connection factory are visible in the jndi tree of this server.
2) Server server2 has a foreign jms server. Foreign JMSConnectionFactory and foreign JMSDestination refer to the jndi entries of server 1. For Foreign JMS Connection Factory username is set to USER_QUEUE. JNDI entries for foreign references are visible in jndi tree of this server.
I wrote a standalone client to store messages in the queue accessing server1 with USER_QUEUE sucessfully.
Now I try to deploy a MDB on server2 accessing the queue on server 1. I tried different versions of ejb-jar.xml/weblogic-ejb-jar.xml to access the queue, but with no luck.
scenario a): no security entries in both descriptors; weblogic-descr has entries <destination-jndi-name> and <connection-factory-jndi-name> pointing to the local jndi names. REsult:
<11.02.2005 19.16 Uhr CET> <Warning> <EJB> <BEA-010061> <The Message-Driven EJB:
CancelEasyMoneyBean is unable to connect to the JMS destination: prepaid.Cancel
EasyMoneyQueue. The Error was:
[EJB:010196]'weblogic.jms.common.JMSSecurityException: Access denied to resource
: type=<jms>, application=, destinationType=queue, resource=CancelEasyMoneyQueue
, action=receive' Linked exception = 'weblogic.jms.common.JMSSecurityException:
Access denied to resource: type=<jms>, application=, destinationType=queue, reso
urce=CancelEasyMoneyQueue, action=receive'
So entering username and password for ForeignJMSConnectionFactory doesn't do the trick.
scenario b:) trying to set additional security entries in both descriptors. I added a role queueUser to my mdb and to weblogic-descr a
<security-role-assignment>
<role-name>queueUser</role-name>
<principal-name>USER_QUEUE<principal-name>
</security-role-assignment>
I added the user USER_QUEUE and the group GROUP_QUEUE to server2.
Now server 1 throws exception after redeployment on server 2:
java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[USER_QUEUE, GROUP_QUEUE].
java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[USER_QUEUE, GROUP_QUEUE]
at weblogic.security.service.SecurityServiceManager.seal(SecurityService
Manager.java:680)
Has anybody an idea or a pointer how to define access from a mdb to a foreign queue using security ?
Thanks in advance,
Rainer -
Using foreign JMS providers with wls
does anybody have a clou, where i can find that article, i think it's
by steve felts on using foreign JMS providers with wls? i think the
link on dev2dev is broken?
The new article is called "Using Foreign JMS Providers with WLS" and it's
here:
http://dev2dev.bea.com/resourcelibrary/whitepapers.jsp?highlight=whitepapers
greg
"leopld goess" <[email protected]> wrote in message
news:[email protected]..
> does anybody have a clou, where i can find that article, i think it's
> by steve felts on using foreign JMS providers with wls? i think the
> link on dev2dev is broken?
-
JMS Failover with Distributed Destinations in 7.0
How does JMS failover with distributed destinations in WL 7.0?
In an environment using file stores for persistent messages, can a working server
automatically pick up unprocessed and persisted messages from a failed server?
If so, what's the best way to set this up?
Or, is this completely manual? In other words, we have to bring up a new server
pointing to the location of the file store from the failed server?
It appears that two JMSServers cannot share the same file store and, I'm assuming,
two file stores cannot be using the same directory for persistence.
So the HA you're talking about is something like Veritas automatically restarting
a server (or starting a new one) to process the messages in the persistent queue
that were unprocessed at the time of failure with the file store residing on some
sort of HA disk array.
The key point is that a message once it arrives at a server must be processed
by that server or, in the case of failure of that server, must be processed by
a server similarly configured to the one that failed so that it picks up the unprocessed
messages. The message can't be processed by another server in the cluster.
Or, is there some trick that could be employed to copy from the file store of
the failed server and repost the messages to the still operating servers?
"Zach" <[email protected]> wrote:
>Unless you have some sort of HA framework/hardware, this is a manual
>operation. You either point to the existing persistent storage (shared
>storage or JDBC connection pool), or you move the physical data.
>
>_sjz.
>
>"Jim Cross" <[email protected]> wrote in message
>news:[email protected]...
>>
>>
>> How does JMS failover with distributed destinations in WL 7.0?
>>
>> In an environment using file stores for persistent messages, can a
>working
>server
>> automatically pick up unprocessed and persisted messages from a failed
>server?
>> If so, what's the best way to set this up?
>>
>> Or, is this completely manual? In other words, we have to bring up
>a new
>server
>> pointing to the location of the file store from the failed server?
>
>
-
Hello,
I just started using WLST, and I've written a rather long script that creates
a JMS server and some queues, among other things.
I based my code on the JMS server creation example, and it works perfectly as
long as the JMS server doesn't already exist. If it does, I get output like this:
JMS Server already exists.
[Caching Stub]Proxy for mydomain:Name=myjs,Type=JMSServer
*** JMSQueue with name 'myAuditQ' has been created successfully.
JMS destination is already parented
Setting Type
Setting JNDIName
Traceback (innermost last):
File "<input>", line 1, in ?
File "loaddm.py", line 16, in doit
File "setupServer.py", line 274, in ?
File "<iostream>", line 145, in set
WLSTException: 'Error occured while performing set : Unknown Error. Use dumpStack()
to view the error stack trace'
The line I put the *** by is interesting because the queue that was just created
already exists, yet the create() does not throw any exceptions.
Once this happens, I can do something like the following to add to the confusion:
wls:/mydomain/config> cd('JMSQueue/myAuditQ')
wls:/mydomain/config/JMSQueue/myAuditQ> ls()
Traceback (innermost last):
File "<input>", line 1, in ?
File "<iostream>", line 176, in ls
WLSTException: 'Error occured while performing ls : Could not find an MBean
instance while doing getAttribute. Use dumpStack() to view the error stack trace'
wls:/mydomain/config/JMSQueue/myAuditQ> dumpStack()
javax.management.InstanceNotFoundException: mydomain:Name=myAuditQ,Type=JMSQueue
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.j
ava:108)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
at weblogic.management.internal.RemoteMBeanServerImpl_812_WLStub.getMBea
nInfo(Unknown Source)
at weblogic.management.scripting.InformationHandler.getAllAttributes(Inf
ormationHandler.java:754)
at weblogic.management.scripting.InformationHandler.la(InformationHandle
r.java:538)
at weblogic.management.scripting.InformationHandler.ls(InformationHandle
r.java:146)
at weblogic.management.scripting.WLScriptContext.ls(WLScriptContext.java
:387)
The code that generates this error is like this:
try:
r=create(cNode+'js','JMSServer')
except Exception:
print "JMS Server already exists."
r=getTarget('JMSServer/'+cNode+'js')
if clustered:
target=getTarget('Server/'+cNode)
try:
r.addTarget(target)
except Exception:
print "JMS server is already targeted."
print r
for dest,attr in jms.items():
try:
q=create(dest+suffix,'JMS'+attr['Type'])
except Exception:
print "JMS Destination already exists."
q=
getTarget('JMS'+attr['Type']+'/'+dest+suffix)
try:
q.setParent(r)
except Exception:
print "JMS destination is already parented"
cd('JMS'+attr['Type']+'/'+dest+suffix)
for att, val in attr.items():
print "Setting "+att
if att != 'Type':
set(att,val)
cd('/')This seems to be a larger problem that I initially thought. Ideally
weblogic server will not allow you to create an MBean with same name
since it will collide with the unique object name for that MBean in the
MBeanServer. From your posting I did not understand if you were able to
create an MBean with the same name and did not get a
InstanceAlreadyExists Exception. If you did get it then seems like there
is a problem in the way the server is persisting the config.xml. There
shouldn't be duplicate entries. Please file a support case [email protected].
Thanks,
-satya
Justin Dossey wrote:
(top replying because of the long post)
It looks like this was caused by Weblogic 8 allowing WLST to create invalid domain
configuration (config.xml). I opened config.xml up in an editor and found that
even though I had been using Try: create(foo)/ except Exception: (getTarget(foo)),
there were (many) duplicate entries for MBeans in config.xml. For instance, one
Server was in there four times. Almost every Server had four or more SSL entries
in config.xml. There were many unparented JMS Queues defined, as well-- this
is what I believe caused my problem.
So why does the try create actually create duplicate when an instance already
exists?
"Justin Dossey" <[email protected]> wrote:
Hello,
I just started using WLST, and I've written a rather long script that
creates
a JMS server and some queues, among other things.
I based my code on the JMS server creation example, and it works perfectly
as
long as the JMS server doesn't already exist. If it does, I get output
like this:
JMS Server already exists.
[Caching Stub]Proxy for mydomain:Name=myjs,Type=JMSServer
*** JMSQueue with name 'myAuditQ' has been created successfully.
JMS destination is already parented
Setting Type
Setting JNDIName
Traceback (innermost last):
File "<input>", line 1, in ?
File "loaddm.py", line 16, in doit
File "setupServer.py", line 274, in ?
File "<iostream>", line 145, in set
WLSTException: 'Error occured while performing set : Unknown Error. Use
dumpStack()
to view the error stack trace'
The line I put the *** by is interesting because the queue that was just
created
already exists, yet the create() does not throw any exceptions.
Once this happens, I can do something like the following to add to the
confusion:
wls:/mydomain/config> cd('JMSQueue/myAuditQ')
wls:/mydomain/config/JMSQueue/myAuditQ> ls()
Traceback (innermost last):
File "<input>", line 1, in ?
File "<iostream>", line 176, in ls
WLSTException: 'Error occured while performing ls : Could not find
an MBean
instance while doing getAttribute. Use dumpStack() to view the error
stack trace'
wls:/mydomain/config/JMSQueue/myAuditQ> dumpStack()
javax.management.InstanceNotFoundException: mydomain:Name=myAuditQ,Type=JMSQueue
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.j
ava:108)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
at weblogic.management.internal.RemoteMBeanServerImpl_812_WLStub.getMBea
nInfo(Unknown Source)
at weblogic.management.scripting.InformationHandler.getAllAttributes(Inf
ormationHandler.java:754)
at weblogic.management.scripting.InformationHandler.la(InformationHandle
r.java:538)
at weblogic.management.scripting.InformationHandler.ls(InformationHandle
r.java:146)
at weblogic.management.scripting.WLScriptContext.ls(WLScriptContext.java
:387)
The code that generates this error is like this:
try:
r=create(cNode+'js','JMSServer')
except Exception:
print "JMS Server already exists."
r=getTarget('JMSServer/'+cNode+'js')
if clustered:
target=getTarget('Server/'+cNode)
try:
r.addTarget(target)
except Exception:
print "JMS server is already targeted."
print r
for dest,attr in jms.items():
try:
q=create(dest+suffix,'JMS'+attr['Type'])
except Exception:
print "JMS Destination already exists."
q=
getTarget('JMS'+attr['Type']+'/'+dest+suffix)
try:
q.setParent(r)
except Exception:
print "JMS destination is already parented"
cd('JMS'+attr['Type']+'/'+dest+suffix)
for att, val in attr.items():
print "Setting "+att
if att != 'Type':
set(att,val)
cd('/') -
Weblogic 8.1: Remote/Foreign Server JMS - Destination not found error
Hi
This is our current setup: Weblogic Server 8.1 with JMS module running on the same instance as the application. We would like to move JMS out into its own box. I am currently setting up my development environment to test the new setup. These are the steps I followed:
* Setup the server instance running the application on one box (Box1). Removed the existing JMS Connection Factory and Destination JNDI setup
* Setup a server instance on another box (Box2) without the application. Created the necessary JMS Connection Factories and Destinations. Started the server instance on Box2
* Added a Foreign Server configuration on Box1. Created the connection factory and destinations under this foreign server pointing to Box2
* The Foreign JNDI names are being bound correctly (I verified the JNDI tree on Box1). Restarted the server instance of Box1
Message-Driven Beans deployed on Box1 are unable to retrieve messages from Box2. The exception thrown is given below. Any help in troubleshooting and resolving this issue is appreciated.
<Warning> <EJB> <myserver> <main> <<WLS Kernel>> <> <BEA-010061> <The Message-Driven EJB: MyBean is unable to connect to the JMS destination: jms/my.application.firstQueue. The Error was:
weblogic.jms.common.JMSException: Destination not found
weblogic.jms.common.JMSException: Destination not found
at weblogic.jms.dispatcher.InvocableManager.invocableFind(InvocableManager.java:136)
at weblogic.jms.backend.BESession.createConsumer(BESession.java:153)
at weblogic.jms.backend.BESession.invoke(BESession.java:1457)
at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:643)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchSync(DispatcherImpl.java:179)
at weblogic.jms.frontend.FEConsumer.<init>(FEConsumer.java:232)
at weblogic.jms.frontend.FESession$3.run(FESession.java:1058)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.jms.frontend.FESession.consumerCreate(FESession.java:1054)
at weblogic.jms.frontend.FESession.invoke(FESession.java:2552)
at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:643)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchSync(DispatcherImpl.java:179)
at weblogic.jms.client.JMSSession.consumerCreate(JMSSession.java:1860)
at weblogic.jms.client.JMSSession.createConsumer(JMSSession.java:1691)
at weblogic.jms.client.JMSSession.createReceiver(JMSSession.java:1530)
at weblogic.ejb20.internal.JMSConnectionPoller.setUpQueueSessions(JMSConnectionPoller.java:1720)
at weblogic.ejb20.internal.JMSConnectionPoller.createJMSConnection(JMSConnectionPoller.java:2019)
at weblogic.ejb20.internal.JMSConnectionPoller.connectToJMS(JMSConnectionPoller.java:1180)
at weblogic.ejb20.internal.JMSConnectionPoller.startJMSConnectionPolling(JMSConnectionPoller.java:846)
at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.start(MessageDrivenBeanPoolInfoImpl.java:234)
at weblogic.ejb20.deployer.EJBDeployer.deployMessageDrivenBeans(EJBDeployer.java:1660)
at weblogic.ejb20.deployer.EJBDeployer.startMessageDrivenBeans(EJBDeployer.java:1555)
at weblogic.t3.srvr.T3Srvr.startMDBs(T3Srvr.java:948)
at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:1024)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:361)
at weblogic.Server.main(Server.java:32)
Edited by: user8773992 on Sep 2, 2009 11:31 AM1 - Ensure that the MDB is configured to reference the remote connection factory AND remote destination.
2 - If using the foreign JMS server facility, ensure that it defines the URL of the remote cluster/server, a connection factory mapping, and a destination mapping. Also ensure that the MDB connection factory and destination descriptor fields reference the local JNDI names for the mappings.
3 - If not using the foreign JMS server facility, ensure that the MDB descriptor has the URL of the remote cluster, and a destination JNDI name that's in the remote cluster. (The connection factory JNDI name is not needed in this case, as the MDB will automatically look for a default connection factory that MDB's use.)
I think the MDB chapter of the EJB programmer's guide will likely be helpful here. The latest documentation for the latest release may be more up-to-date than 8.1 -- the concepts are the same with the newer releases.
Tom -
Browse jms destinations on managed servers (from admin server)
I need to browse JMS destinations from the admin server (in a WebLogic
9.2 console extension) that are only deployed on the managed servers.
I can get destination attributes via the domain runtime server, but
no JNDI or actually browse the destinations. All destinations in
which I am interested are queues.
I know I can change my initial context, but if that is the way to go, is there a way to determine the managed
servers' URLs at runtime?
Thank you for any help,
Sethhi
this worked for me (on 8.1). I suppose there are
better ways in 9.2
Context adminCtx = null;
adminCtx = getInitialContextForAdminServer();
MBeanHome adminhome = (MBeanHome)
adminCtx.lookup(MBeanHome.ADMIN_JNDI_NAME);
// Get the list of running managed
ning managed servers and iterate over itSet
Set srSet =
Set srSet =
adminhome.getMBeansByType("ServerRuntime");
Iterator sr_iter = srSet.iterator();
while (sr_iter.hasNext())
ServerRuntimeMBean bean =
timeMBean bean = (ServerRuntimeMBean) sr_iter.next();
// Get the home for the managed
for the managed server
MBeanHome remoteHome = (MBeanHome)
me = (MBeanHome) adminCtx.lookup(MBeanHome.JNDI_NAME
+ "." + bean.getName());
// Get the MBeanServer for the
anServer for the managed server
MBeanServer rmbs =
eanServer rmbs = remoteHome.getMBeanServer();
//invoke it
ObjectName objectName= new
objectName= new ObjectName("$mbean");
rmbs.invoke(objectName,operation,params,types);
Edited by deepshet at 05/05/2007 10:00 AMThank you for the help.
MBeanHome is deprecated as of 9.0, so I was unable to directly use your example. You have helped though, thank you.
As of now I am querying the domain runtime server for:
ObjectName("com.bea:*,Type=ServerRuntime")
I am then iterating through the returned Set to get the server URLs and then setting my InitialContext with a PROVIDER_URL of the managed servers. This allows me to Look Up a Destination without JNDI based on step 4 from [url http://edocs.bea.com/wls/docs92/jms/implement.html#wp1313933]here. I can then browse as needed.
The ugly part is that if I include the Admin URL in my PROVIDER_URL then it does not work, so I am checking for it as I loop through the set of ServerRuntimes and not including it.
Further though slightly less annoying is that the managed server URLs include "t3://" but if I leave it in there, a malformed URL exception is thrown when setting the PROVIDER_URL. So I also remove all of those and then preppend one on the front for PROVIDER_URL as I actually need.
It is not pretty, but it is working on the only cluster I have been able to try thus far.
If anyone was a cleaner suggestion, please share. -
[OSB 10.3.1] error adding a JMS destination
Hi all,
I'm migrating my ALSB 3.0 project into OSB 10.3.1. So I've recreated the clustered domain in OSB as I did with ALSB and then ready to run my
ebAdmin.cmd properties\local\admin.DVE.osb_cluster1.SYS.properties properties\local\admin.DVE.osb_cluster1.APP.properties create-jms-core
in order to create my JMS resources ... all go find excpet at the end when the script tries to activate the changes:
Buildfile: admin.xml
create-jms-core:
admin:
[java] Initializing WebLogic Scripting Tool (WLST) ...
[java] Welcome to WebLogic Server Administration Scripting Shell
[java] Type help() for help on available commands
[java] ===============================================================
[java] Loading admin properties file from : ./admin.properties
[java] ===============================================================
[java] Connecting to t3://localhost:7001 with userid weblogic ...
[java] Successfully connected to Admin Server 'AdminServer' that belongs to domain 'osb_cluster1'.
[java] Warning: An insecure protocol was used to connect to the
[java] server. To ensure on-the-wire security, the SSL port or
[java] Admin port should be used instead.
[java] Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
[java] For more help, use help(domainRuntime)
[java] Location changed to edit tree. This is a writable tree with
[java] DomainMBean as the root. To make changes you will need to start
[java] an edit session via startEdit().
[java] For more help, use help(edit)
[java] You already have an edit session in progress and hence WLST will
[java] continue with your edit session.
[java] Starting an edit session ...
[java] Started edit session, please be sure to save and activate your
[java] changes once you are done.
[java] ===============================================================
[java] Creating JMS core resources
[java] ===============================================================
[java] #### found managed: m01
[java] #### ready to create file store EventBusFileStore_m01
[java] #### created file store EventBusFileStore_m01
[java] #### ready to create JMS server EventBusJMSServer_m01
[java] #### created JMS server EventBusJMSServer_m01
[java] #### found managed: m02
[java] #### ready to create file store EventBusFileStore_m02
[java] #### created file store EventBusFileStore_m02
[java] #### ready to create JMS server EventBusJMSServer_m02
[java] #### created JMS server EventBusJMSServer_m02
[java] #### ready to create JMS module EventBusSystemModule
[java] #### created JMS module EventBusSystemModule
[java] #### ready to create connection factory EventBusConnectionFactory
[java] #### created connection factory EventBusConnectionFactory
[java] #### ready to create XA connection factory EventBusXAConnectionFactory
[java] #### created XA connection factory EventBusXAConnectionFactory
[java] #### ready to create dummyConsumerEventConsumer1OutboundQueue
[java] #### created dummyConsumerEventConsumer1OutboundQueue
[java] #### ready to create dummyConsumerEventConsumer1RecoveryOutboundQueue
[java] #### created dummyConsumerEventConsumer1RecoveryOutboundQueue
[java] #### ready to set error destination dummyConsumerEventConsumer1RecoveryOutboundQueue for dummyConsumerEventConsumer1OutboundQueue
[java] #### error destination set successfully for dummyConsumerEventConsumer1OutboundQueue
the same for other many Uniform Distributed Queues
[java] #### ready to create MonitorTopic
[java] #### created MonitorTopic
[java] Saving all your changes ...
[java] Saved all your changes successfully.
[java] Activating all your changes, this may take a while ...
[java] The edit lock associated with this edit session is released
[java] once the activation is completed.
[java] This Exception occurred at Sat Aug 15 14:12:14 CEST 2009.
[java] weblogic.application.ModuleException: ERROR: Unable to add destination EventBusSystemModule!wlsbJMSServer_auto_1@dummyConsumerEventConsumer1OutboundQueue to the back end wlsbJMSServer_auto
_1
[java] at weblogic.jms.backend.BEDestinationRuntimeDelegate.prepare(BEDestinationRuntimeDelegate.java:197)
[java] at weblogic.jms.backend.udd.UDDEntity.prepare(UDDEntity.java:444)
[java] at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1704)
[java] at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1667)
[java] at weblogic.jms.module.JMSModule$EntityState.access$100(JMSModule.java:1608)
[java] at weblogic.jms.module.JMSModule.prepare(JMSModule.java:277)
[java] at weblogic.jms.module.ModuleCoordinator.prepare(ModuleCoordinator.java:185)
[java] at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
[java] at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
[java] at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
[java] at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
[java] at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
[java] at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
[java] at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
[java] at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
[java] at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:16)
[java] at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
[java] at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
[java] at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:197)
[java] at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:89)
[java] at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
[java] at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:723)
[java] at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1190)
[java] at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:248)
[java] at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
[java] at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)
[java] at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)
[java] at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)
[java] at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
[java] at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
[java] at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
[java] Caused by: weblogic.jms.common.JMSException: [JMSExceptions:045050]A destination of name EventBusSystemModule!wlsbJMSServer_auto_1@dummyConsumerEventConsumer1OutboundQueue has a jms-create
-destination-identifier of name EventBusSystemModule!wlsbJMSServer_auto_1@dummyConsumerEventConsumer1OutboundQueue. However, another destination of name EventBusSystemModule!wlsbJMSServer_auto_1@dummy
ConsumerEventConsumer1OutboundQueue has the same jms-create-destination-identifier. Two destinations with the same jms-create-destination-identifier cannot be co-located on the JMSServer named wlsbJMS
Server_auto_1.
[java] at weblogic.jms.backend.BackEnd.addDestination(BackEnd.java:1527)
[java] at weblogic.jms.backend.BEDestinationRuntimeDelegate.prepare(BEDestinationRuntimeDelegate.java:195)
[java] ===============================================================
[java] #### ERROR - unexpected error: main.WLSTException
[java] ===============================================================
[java] No stack trace available.
[java] Edit session is cancelled successfully
[java] Disconnected from weblogic server: AdminServer
[java] Unexpected error: main.WLSTException
[java]
[java] Problem invoking WLST - Traceback (innermost last):
[java] File "K:\EventBus\scripts\admin.py", line 910, in ?
[java] File "K:\EventBus\scripts\admin.py", line 216, in admin
[java] File "K:\EventBus\scripts\admin.py", line 366, in configJMSCore
[java] File "K:\EventBus\scripts\admin.py", line 681, in endTransaction
[java] File "<iostream>", line 364, in activate
[java] WLSTException: Error occured while performing activate : Error while Activating changes.ERROR: Unable to add destination EventBusSystemModule!wlsbJMSServer_auto_1@dummyConsumerEventConsume
r1OutboundQueue to the back end wlsbJMSServer_auto_1 Use dumpStack() to view the full stacktrace
what I don't understand is the fact that my EventBusSystemModule in some way references wlsbJMSServer_auto_1 (not created by my script but this JMS server is already available in OSB).
I run successfully the above script againt ALSB 3.0 but now with OSB something goes wrong.
As you see from above output, the script:
- create file store EventBusFileStore_m01 (m01 is the m01 managed server in the cluster)
- create JMS server EventBusJMSServer_m01
- create file store EventBusFileStore_m02
- create JMS server EventBusJMSServer_m02
- created JMS module EventBusSystemModule
from py point of view the code is:
def createJMSModule(jmsModuleName, cluster):
print '#### ready to create JMS module ' + jmsModuleName
cd('/')
jmsModule = cmo.createJMSSystemResource(jmsModuleName)
cd('/JMSSystemResources/' + jmsModuleName)
set('Targets',jarray.array([ObjectName('com.bea:Name=' + cluster + ',Type=Cluster')], ObjectName))
print '#### created JMS module ' + jmsModuleName
print
about the creation of the UDQ
def createUniformDistributedQueue(destinationName, jndiDestination, jmsModuleName):
print '#### ready to create ' + destinationName
path = '/JMSSystemResources/' + jmsModuleName + '/JMSResource/' + jmsModuleName
try:
cd(path)
except WLSTException,e:
failed = 'Check if create-jms-core task has been already executed'
raise Failure(failed)
cmo.createUniformDistributedQueue(destinationName)
cd('/JMSSystemResources/' + jmsModuleName + '/JMSResource/' + jmsModuleName + '/UniformDistributedQueues/' + destinationName)
cmo.setJNDIName(jndiDestination)
cmo.setLoadBalancingPolicy('Round-Robin')
cmo.setDefaultTargetingEnabled(true)
print '#### created ' + destinationName
print
I'm trying to understand where is the problem ....
Thanks in advance
ferpSounds like the database information is wrong, Have you tried correctign this through the BPM Process administrator? There are a few places where you setup database configuration it's probably one of them.
I'm am fairly new so I can only offer up that.
I'm having a nightmare myself deplying a process engine, good luck
mARK -
Producing message to temporary JMS destination
Hi,
Has anyone managed to produce a message to a temporary JMS destination using the JMS Adapter? I'm trying to get this request/reply-pattern working:
-Java client connects to a Connection Factory and creates a temporary reply queue (works, CF returns a destination like "TestingJmsServer!TestingJmsServer.TemporaryQueue2")
-The client produces a message with JMSReplyTo pointing to the temporary reply queue (works)
-JMS Adapter consumes the message and assigns jca.jms.JMSDestinationName := jca.jms.JMSReplyTo (works)
-The JMS adapter should now produce the reply message to the provided temporary queue, but it always fails with error BEA-045101:
The destination name passed to createTopic or createQueue "destName" is invalid. If the destination name does not contain a "/" character then it must be the name of a distributed destination that is available in the cluster to which the client is attached. If it does contain a "/" character then the string before the "/" must be the name of a JMSServer or a ".". The string after the "/" is the name of a the desired destination. If the "./" version of the string is used then any destination with the given name on the local WLS server will be returned.
The same problem occurs with fixed queues, like "TestingJmsModule!ReplyQueue", but I can make them work by adding a "./" in front of the destination name when performing the jca.jms.JMSDestinationName assign, so that it reads "./TestingJmsModule!ReplyQueue". After that the adapter is able to produce the message correctly to the given JMSDestinationName.
Is it significant that with fixed queues I get a destination like "JmsModule!FixedQueueName" (note the module) but with temporary destinations it is like "JmsServer!TempQueueName" (note the server)?
Should the destination name be of some other format? The current value is exactly what the Connection Factory returns, and if the JMS adapter is replaced with another java client, producing the reply message to that destination works just fine.
regards,
VilleHi,
I am trying to send messages to the WLS queue through Camel and facing the same issue, which can be eliminated by using queue name as ./<QUEUE_NAME>.
However it only eliminates the error and the next one comes is real pain. It is not able to find the JNDI name of the queue, where as I am able to see it in Admin console JNDI tree.
Exception in thread "Main Thread" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: Test Message: 0]
at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1161)
at org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:512)
at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:441)
at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:437)
at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:125)
at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:130)
at org.apache.camel.example.jmstofile.PublishMessage.main(PublishMessage.java:63)
Caused by: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is weblogic.jms.common.JMSException: [JMSExceptions:045102]A destination of name "WLtestQueue" was not found on WLS server "AdminServer".
at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469)
at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:172)
at org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:347)
at org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:303)
at org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:101)
at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85)
at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63)
at org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:345)
at org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:317)
at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:222)
at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:317)
at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:168)
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:110)
at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:123)
... 2 more
Caused by: weblogic.jms.common.JMSException: [JMSExceptions:045102]A destination of name "WLtestQueue" was not found on WLS server "AdminServer".
at weblogic.jms.dispatcher.DispatcherAdapter.convertToJMSExceptionAndThrow(DispatcherAdapter.java:110)
at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncNoTran(DispatcherAdapter.java:61)
at weblogic.jms.client.JMSSession.createDestination(JMSSession.java:3192)
at weblogic.jms.client.JMSSession.createQueue(JMSSession.java:2577)
at weblogic.jms.client.WLSessionImpl.createQueue(WLSessionImpl.java:938)
at org.springframework.jms.support.destination.DynamicDestinationResolver.resolveQueue(DynamicDestinationResolver.java:101)
at org.springframework.jms.support.destination.DynamicDestinationResolver.resolveDestinationName(DynamicDestinationResolver.java:66)
at org.springframework.jms.support.destination.JmsDestinationAccessor.resolveDestinationName(JmsDestinationAccessor.java:100)
at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$200(JmsConfiguration.java:141)
at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:174)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:466)
... 17 more
Anyone has got any idea? -
SOAP / Web Service clustering WLS 7.0.2
Hi there,
I'm looking for information on if and how WLS 7.0.2 is capable of
clustering Web Services. We created the Web Service like following:
- Created a stateless session bean first
- Created the web service with a servicegen ant task
I browsed through edocs.bea.com but
up to now with no success.
Any help is greatly appreciated.
Best regards,
Fabio
"Fabio Barone" <[email protected]> wrote:
>
>Hi there,
>
>I'm looking for information on if and how WLS 7.0.2 is capable of
>clustering Web Services. We created the Web Service like following:
>- Created a stateless session bean first
>- Created the web service with a servicegen ant task
>
>We need the clustering service for high availability, not
>for load balancing or session fail-over.
>
>Our IT dept. offered a hardware solution with CISCO load-balancers
>first (our preferred solution for high availability).
>However, the guys here are not able to configure the hardware properly,
>that's why we're looking for alternatives with the WLS cluster.
>
>I browsed through edocs.bea.com but
>up to now with no success.
>
>Any help is greatly appreciated.
>
>Best regards,
>Fabio
Fabio, your other alternative is through a group of Web servers configured identically
using Weblogic proxy plugins. WLS can also act as a load-balancing proxy to interface
with a Cluster. Search bea docs for Load-balancing Proxy.....
Good Luck
Maybe you are looking for
-
Hardware/Software needed for WebForms?
My company is planning on migrating a Forms 3.0 application to WebForms (we need to support both Win95/98 PCs and Macintoshes). I understand the basic 3-tier structure (i.e. database server, application server and browser based client), but I'm still
-
Adding a Sharepoint Document Library in Windows Explorer Fovorites
I want to add a sharepoint document library in my favorites in windows explorer... Every time I copy the link, instead of opening the library in windows explorer, it open the browser and go directly to the site... Any help would be appreciated. Than
-
Attempted the upgrade and received query....remove ttf-bitstream-vera? Answered Yes. Prceeded with upgrade. Loading of XFree86-4.4.0-1 encountered conflicts. Is it again necessary to remove XFree86 before the upgrade and install it after
-
I don't understand how to bind a node
Hi guys I don't understand how to bind a node I want to bind a mandatory parameter for my model (ex: Bapi_Delete_Travel_Expense_Input) if the parameter is a node ,not a attribute,how to bind it I don't understand yet. Please give me some suggest Tha
-
Return package cursor from another store procedure
Hello I'm new in Oracle, and I have the following problem: I have an cursor in a package defined like that: create or replace PACKAGE "TestPACKAGE" AS cursor DOWNLOAD_CURSOR is select A.* from Table1 A, Table2 B END TestPACKAGE; In reality there is m