AQ-JMS-WLS
Hi,
I am binding the a AQJMS_FACTORY & a AQ_QUESUS to the JNDI tree of WLS using a
startup class and polling on the queue using an MDB. (I have used Eric Ma's code
as an example.)
But, the problem is that MDB polls on the queue only "during" starting of WLS
or when the MDB is being re-deployed. After, starting WLS the MDB fails to read
messages from the AQ unless redeployed. I have checked the JNDI tree using WLS
console. The AQJMS_FACTORY & AQ_QUESUS are bound to the tree correctly. The polling
interval of the MDB is set to 1 sec.
Can anyone give pointers to why the MDB is not polling on the AQ ?
Problem I realized is that the either DB connection or QSession is not live
to get the Queue.
Every time MDB poll the Queue it is looking for DB connection.
Can any one help me to keep both the connection live by any mean on Webligic server?
Regards,
Jugal
Tried it again on another Unix server, it worked.
Thanks,
Dips
"Diptanshu Parui" <[email protected]> wrote:
>
>Hi Eric,
>
>Yes, the Oracle is on a Solaris box and we had already tried (prior to
>the posting)
>modifying /etc/hosts file. But, still didn't work. Take note that the
>clients
>have static ip and select subscription_name,location_name from sys.reg$
>on the
>database returns details of all clients connected.
>
>Regards,
>Diptanshu
>
>"Eric Ma" <[email protected]> wrote:
>>
>>If your Oracle database is on Unix/Linux, you may have run into an Oracle
>>bug.
>> Find a work-around at:
>>
>>Asynchronous consumption from AQ JMS
>>
>>Eric Ma
>>
>>"Jugal Sharma" <[email protected]> wrote:
>>>
>>>Hi,
>>>
>>>I am binding the a AQJMS_FACTORY & a AQ_QUESUS to the JNDI tree of
>WLS
>>>using a
>>>startup class and polling on the queue using an MDB. (I have used Eric
>>>Ma's code
>>>as an example.)
>>>
>>>But, the problem is that MDB polls on the queue only "during" starting
>>>of WLS
>>>or when the MDB is being re-deployed. After, starting WLS the MDB fails
>>>to read
>>>messages from the AQ unless redeployed. I have checked the JNDI tree
>>>using WLS
>>>console. The AQJMS_FACTORY & AQ_QUESUS are bound to the tree correctly.
>>>The polling
>>>interval of the MDB is set to 1 sec.
>>>
>>>Can anyone give pointers to why the MDB is not polling on the AQ ?
>
>>>
>>>Problem I realized is that the either DB connection or QSession is
>>>not live
>>>to get the Queue.
>>>Every time MDB poll the Queue it is looking for DB connection.
>>>
>>>Can any one help me to keep both the connection live by any mean on
>>Webligic
>>>server?
>>>
>>>Regards,
>>>Jugal
>>>
>>>
>>>
>>>
>>
>
Similar Messages
-
MDB with foreign JMS : WLS 9.23
For the love of _____ (fill in your own muse of desperation here), is there some categorical statement of whether WLS9.23 actually ***works*** with MDB's and foreign JMS providers? Whereever I search/find, people have trouble with this.
Some kind BEA sould - please. Please, please please : publish a canonical example of MDB with secured foreign-JNDI provided connx factory, and either a queue or a topic.
I'm beginning to wonder if this works at all.Good morning!
Categorical Statement: WLS supports JMS spec compliant foreign providers for MDBs, bridges, resource-references, foreign providers. We also support sending a foreign providers message using a WebLogic JMS client.
For general Tibco integration questions, I recall that the Tibco docs themselves contain WebLogic integration examples. There's also some much mention of Tibco in the out-dated "Using Foreign JMS Providers with WebLogic Server" white-paper on dev2dev.
That said, there have been definitely been problems with Tibco and MQ's latest release, as they both recently released semi-non-JMS compliant clients that our wrapper code was unprepared to deal with. In short, we were caught unawares when these clients stopped supporting the 1.0.2 APIs even though 1.1 specification clearly requires both 1.1 and 1.0.2 support. Rather than ask Tibco and MQ teams to have them patch their code (an approach we've sometimes taken over the years), we chose this time to enhance our code.
I think the problems were all fixed by 9.23 - but you may want to contact customer support to see if there are any additional patches required. Alternatively, you can try use a slightly older Tibco client, as presumably their older clients are still able to interoperate with their latest server version (this approach works with MQ).
Tom -
Tuxedo--Elink---mqseries----Jms---Wls : Is it possible???
Hi all,
I have to post again a question about Tuxedo-WLS communication. Unfortunately
the architecture we use is AIX so Weblogic Tuxedo Connector cannot be used. I
thought about another possible solution: that is, contacting the AIX machine using
MQSeries (via Bea eLinkAdapter for MQSeries) and in turn invoking WLS via JMS.
Yes it's a bit troublesome but I'd like to know if this could be an alternative......what
do you think?
Thanks
FrancescoFransesco,
WTC is an integral part of WLS 6.1 and higher, and is thereore (as far as I am
aware) supported on all the platforms that WLS 6.1 is, so it should run just
fine on AIX.
Regards,
Peter.
Got a Question? Ask BEA at http://askbea.bea.com
The views expressed in this posting are solely those of the author, and BEA
Systems, Inc. does not endorse any of these views.
BEA Systems, Inc. is not responsible for the accuracy or completeness of the
information provided
and assumes no duty to correct, expand upon, delete or update any of the
information contained in this posting.
Francesco wrote:
Hi all,
I have to post again a question about Tuxedo-WLS communication. Unfortunately
the architecture we use is AIX so Weblogic Tuxedo Connector cannot be used. I
thought about another possible solution: that is, contacting the AIX machine using
MQSeries (via Bea eLinkAdapter for MQSeries) and in turn invoking WLS via JMS.
Yes it's a bit troublesome but I'd like to know if this could be an alternative......what
do you think?
Thanks
Francesco -
MDB deployed on a separate WLS/machine from where JMS is running
I'm trying to deploy an MDB on a separate WLS/machine from where
JMS is running. How and where to put the reference to the queue to read messages.
Also please share the versions of ejb-jar.xml and weblogic-ejb-jar.xml files that
are more practical and meaningful than they are in BEA samples.
Thanks a lot.If the MDB's WLS instance and the JMS WLS instance are in the same
cluster, then you shouldn't need to do anything. (The clustering will
present a unified JNDI tree and that's how it finds it.)
If they're not clustered, you need something like this in your
weblogic-ejb-jar.xml:
<message-driven-descriptor>
<destination-jndi-name>Bids</destination-jndi-name>
<provider-url>t3://jms_server:7001</provider-url>
</message-driven-descriptor>
-- Rob
Alan wrote:
I'm trying to deploy an MDB on a separate WLS/machine from where
JMS is running. How and where to put the reference to the queue to read messages.
Also please share the versions of ejb-jar.xml and weblogic-ejb-jar.xml files that
are more practical and meaningful than they are in BEA samples.
Thanks a lot. -
Is there a requirement to restart the JMS/Weblogc Server everytime when the DB goes down?
Question:
When the Database is shutdown gracefully everything was fine.
But when the Database is brought down with shutdown abort the MDB consumer will never consume messages from the topic again. And we need to restart the WebLogic Server in order to get the messages consumed again.
So is there a requirement to restart the JMS/Weblogc Server everytime when the DB goes down? If not, what type of failures will require the JMS/WLS restart?On a DB failure, a WL JDBC store service will make a brief attempt to reconnect before shutting itself down along with any services that depend on the store.
It isn't necessary to restart the entire WebLogic Server JVM to bring the affected service(s) back if you can use the Automatic Service Migration feature. ASM can automatically restart a failed service on a different WL Server in the same cluster, and/or can try a restart-in-place for the service if the service's original host WL Server JVM is still running. The Automatic Service Migration (pdf) white-paper has a thorough discussion of this area.
In addition to ASM, there's also a "whole server migration" option that can automatically restart or migrate an entire WL server.
Tom -
How to configure MQ with WLS (JMS MQ vs Native MQ)
Hi All,
SOA Suite = 11.1.3.3
MQ Series = 6.0
Jdeveloper = 11.1.3.3
I want to read/write data to an MQ which is setup on a physical box different from Weblogic Server box. But both systems fall under the same network. I did some research on the forums to know the steps to configure MQ but ultimately got confused with the following questions in mind.
1. What is the difference between JMS MQ and Native MQ? How to determine which one to use?
2. If native MQ can be used here, what are the steps to configure Native MQ on WLS in my situation?
3. Do I need any foreign servers or message bridges to be configured?
Please provide any directions or pointers.
Regards,
Neeraj Sehga1. What is the difference between JMS MQ and Native MQ? How to determine which one to use?Native MQ refers to a proprietary api provided by IBM in multiple languages including java so that applications running on these can communicate mq. IBM also provides JMS wrappers around this native api, so that a jms client can talk to mq using JMS API. This is called MQ JMS.
2. If native MQ can be used here, what are the steps to configure Native MQ on WLS in my situation?SOA suite provides a MQ Resource Adaptor which can be used to connect to MQ. The developers of this resource adapter would have used the native api to enable the adaptor to talk to MQ, so that you dont have to worry about it. However you will need to configure the properties of your local MQ ( qmgr , q name etc). This is done in the outbound connection pool properties of the resource adaptor.
please check this blog for how to do this : http://soa-bpel-esb.blogspot.com/2009/09/configuring-mq-in-11g-soa-suite.html.
Since your MQ installation is in a remote machine you will have to configure the following properties specific to your environment - hostname, port, server connection channel, along with the queue manager name and queue name
3. Do I need any foreign servers or message bridges to be configured?Not required for your case if you are using MQ Adaptor. Since MQ also provides a JMS transport , you would have required foreign servers if you have to use JMS Adaptor instead of MQ Adaptor. Native MQ is expected to be faster than MQ JMS as it doesn't have the extra JMS layer. -
Hi all,
I've setup an OSB cluster with 2 managed servers.
From WLS console I created successfully the below JMS resources:
1. new file store, name and directory: MyFileStore_m01, target: bnk01osbm01 migratable
2. new file store, name and directory: MyFileStore_m02, target: bnk01osbm02 migratable
3. new jms server, name: MyJMSServer_m01, persistent store: MyFileStore_m01, target: bnk01osbm01 migratable
4. new jms server, name: MyJMSServer_m02, persistent store: MyFileStore_m02, target: bnk01osbm02 migratable
5. new jms module, name: MyJMSSystemModule, targets: cluster bnk01osbcluster + all servers in the cluster
6. new xa conn factory, name: MyXAConnectionFactory, jndi name: MyXAConnectionFactory
(targets as proposed by WLS itself: cluster bnk01osbcluster + all servers in the cluster)
+ XA Connection Factory Enabled: true
7. new Distributed Queue, name: MyDistributedQueue1, jndi name: MyDistributedQueue1, load balancing policy: round-robin
(targets as proposed by WLS itself: cluster bnk01osbcluster + all servers in the cluster)
+ allocate members uniformly: true
and I recorded that into the included recorded_by_wls.py. As said no error has been raised.
Then I removed the above JMS resources and I executed the recorded_by_wls.py from command line getting the error that I reported at the end of the email.
I changed slightly the original py produced by WLS by adding only the below first 5 lines:
print "Starting the script ..."
connect("weblogic", "weblogic", "t3://wasdv1r3n1.dev.b-source.net:7031")
edit()
startEdit()
cd('/')
I included also the recorded_by_wls.py source at the end of the email.
For information I reported also what I saw on WLS console when I created manually my JMS resources.
Do you have an idea why a successfully recorded WLS session fails when executed from a command line ?
Any help will be very appreciate.
Thanks in advance.
Regards
ferp
Error:
java weblogic.WLST recorded_by_wls.py Initializing WebLogic Scripting Tool (WLST) ...
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
Starting the script ...
Connecting to t3://wasdv1r3n1.dev.b-source.net:7031 with userid weblogic ...
Successfully connected to Admin Server 'bnk01osbadm' that belongs to domain 'bnk01osb'.
Warning: An insecure protocol was used to connect to the server. To ensure on-the-wire security, the SSL port or
Admin port should be used instead.
Location changed to edit tree. This is a writable tree with
DomainMBean as the root. To make changes you will need to start an edit session via startEdit().
For more help, use help(edit)
Starting an edit session ...
Started edit session, please be sure to save and activate your changes once you are done.
Activating all your changes, this may take a while ...
The edit lock associated with this edit session is released once the activation is completed.
Activation completed
Starting an edit session ...
Started edit session, please be sure to save and activate your changes once you are done.
Activating all your changes, this may take a while ...
The edit lock associated with this edit session is released once the activation is completed.
This Exception occurred at Mon Sep 07 15:31:33 CEST 2009.
weblogic.application.ModuleException: ERROR: Unable to add destination MyJMSSystemModule!wlsbJMSServer_auto_2@MyDistributedQueue1 to the back end wlsbJMSServer_auto_2
at weblogic.jms.module.JMSModule.prepareUpdate(JMSModule.java:618)
at weblogic.jms.module.ModuleCoordinator.prepareUpdate(ModuleCoordinator.java:487)
at weblogic.application.internal.flow.DeploymentCallbackFlow$5.next(DeploymentCallbackFlow.java:514)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepareUpdate(DeploymentCallbackFlow.java:280)
at weblogic.application.internal.BaseDeployment$PrepareUpdateStateChange.next(BaseDeployment.java:679)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.BaseDeployment.prepareUpdate(BaseDeployment.java:444)
at weblogic.application.internal.SingleModuleDeployment.prepareUpdate(SingleModuleDeployment.java:16)
at weblogic.application.internal.DeploymentStateChecker.prepareUpdate(DeploymentStateChecker.java:221)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepareUpdate(AppContainerInvoker.java:149)
at weblogic.deploy.internal.targetserver.operations.DynamicUpdateOperation.doPrepare(DynamicUpdateOperation.java:130)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:723)
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1190)
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:248)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: weblogic.jms.common.JMSException: [JMSExceptions:045050]A destination of name MyJMSSystemModule!wlsbJMSServer_auto_2@MyDistributedQueue1 has a jms-create-destination-identifier of name MyJMSSystemModule!wlsbJMSServer_auto_2@MyDistributedQueue1. However, another destination of name MyJMSSystemModule!wlsbJMSServer_auto_2@MyDistributedQueue1 has the same jms-create-destination-identifier. Two destinations with the same jms-create-destination-identifier cannot be co-located on the JMSServer named wlsbJMSServer_auto_2.
at weblogic.jms.backend.BackEnd.addDestination(BackEnd.java:1527)
at weblogic.jms.backend.BEDestinationRuntimeDelegate.prepare(BEDestinationRuntimeDelegate.java:195)
at weblogic.jms.backend.udd.UDDEntity.prepare(UDDEntity.java:444)
at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1704)
at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1667)
at weblogic.jms.module.JMSModule$EntityState.access$100(JMSModule.java:1608)
at weblogic.jms.module.JMSModule.addEntity(JMSModule.java:936)
at weblogic.jms.module.JMSModule.addEntity(JMSModule.java:841)
at weblogic.jms.module.JMSModule.access$1500(JMSModule.java:87)
at weblogic.jms.module.JMSModule$JMSModuleListener.prepareUpdate(JMSModule.java:1485)
at weblogic.descriptor.internal.DescriptorImpl$Update.prepare(DescriptorImpl.java:481)
at weblogic.descriptor.internal.DescriptorImpl.prepareUpdateDiff(DescriptorImpl.java:195)
at weblogic.descriptor.internal.DescriptorImpl.prepareUpdate(DescriptorImpl.java:174)
at weblogic.jms.module.JMSModule.prepareUpdate(JMSModule.java:614)
Problem invoking WLST - Traceback (innermost last):
File "/products/software/tmp/recorded_by_wls.py", line 92, in ?
File "<iostream>", line 364, in activate
WLSTException: Error occured while performing activate : Error while Activating changes.ERROR: Unable to add destination MyJMSSystemModule!wlsbJMSServer_auto_2@MyDistributedQueue1 to the back end wlsbJMSServer_auto_2 Use dumpStack() to view the full stacktrace
recorded_by_wls.py source
print "Starting the script ..."
connect("weblogic", "weblogic", "t3://wasdv1r3n1.dev.b-source.net:7031")
edit()
startEdit()
cd('/')
cmo.createFileStore('MyFileStore_m01')
cd('/FileStores/MyFileStore_m01')
cmo.setDirectory('MyFileStore_m01')
set('Targets',jarray.array([ObjectName('com.bea:Name=bnk01osbm01 (migratable),Type=MigratableTarget')], ObjectName))
activate()
startEdit()
cd('/')
cmo.createFileStore('MyFileStore_m02')
cd('/FileStores/MyFileStore_m02')
cmo.setDirectory('MyFileStore_m02')
set('Targets',jarray.array([ObjectName('com.bea:Name=bnk01osbm02 (migratable),Type=MigratableTarget')], ObjectName))
activate()
startEdit()
cd('/')
cmo.createJMSServer('MyJMSServer_m01')
cd('/Deployments/MyJMSServer_m01')
cmo.setPersistentStore(getMBean('/FileStores/MyFileStore_m01'))
set('Targets',jarray.array([ObjectName('com.bea:Name=bnk01osbm01 (migratable),Type=MigratableTarget')], ObjectName))
activate()
startEdit()
cd('/')
cmo.createJMSServer('MyJMSServer_m02')
cd('/Deployments/MyJMSServer_m02')
cmo.setPersistentStore(getMBean('/FileStores/MyFileStore_m02'))
set('Targets',jarray.array([ObjectName('com.bea:Name=bnk01osbm02 (migratable),Type=MigratableTarget')], ObjectName))
activate()
startEdit()
cd('/')
cmo.createJMSSystemResource('MyJMSSystemModule')
cd('/SystemResources/MyJMSSystemModule')
set('Targets',jarray.array([ObjectName('com.bea:Name=bnk01osbcluster,Type=Cluster')], ObjectName))
activate()
startEdit()
cd('/JMSSystemResources/MyJMSSystemModule/JMSResource/MyJMSSystemModule')
cmo.createConnectionFactory('MyXAConnectionFactory')
cd('/JMSSystemResources/MyJMSSystemModule/JMSResource/MyJMSSystemModule/ConnectionFactories/MyXAConnectionFactory')
cmo.setJNDIName('MyXAConnectionFactory')
cd('/JMSSystemResources/MyJMSSystemModule/JMSResource/MyJMSSystemModule/ConnectionFactories/MyXAConnectionFactory/SecurityParams/MyXAConnectionFactory')
cmo.setAttachJMSXUserId(false)
cd('/JMSSystemResources/MyJMSSystemModule/JMSResource/MyJMSSystemModule/ConnectionFactories/MyXAConnectionFactory')
cmo.setDefaultTargetingEnabled(true)
activate()
startEdit()
cd('/JMSSystemResources/MyJMSSystemModule/JMSResource/MyJMSSystemModule/ConnectionFactories/MyXAConnectionFactory/TransactionParams/MyXAConnectionFactory')
cmo.setTransactionTimeout(3600)
cmo.setXAConnectionFactoryEnabled(true)
activate()
startEdit()
cd('/JMSSystemResources/MyJMSSystemModule/JMSResource/MyJMSSystemModule')
cmo.createUniformDistributedQueue('MyDistributedQueue1')
cd('/JMSSystemResources/MyJMSSystemModule/JMSResource/MyJMSSystemModule/UniformDistributedQueues/MyDistributedQueue1')
cmo.setJNDIName('MyDistributedQueue1')
cmo.setLoadBalancingPolicy('Round-Robin')
cmo.setDefaultTargetingEnabled(true)
activate()
startEdit()
-- source end --
ON WLS console
Name Type Target
MyFileStore_m01 FileStore bnk01osbm01 (migratable)
MyFileStore_m02 FileStore bnk01osbm02 (migratable)
FileStore_auto_1 FileStore bnk01osbm01
FileStore_auto_2 FileStore bnk01osbm02
WseeFileStore_auto_1 FileStore bnk01osbm01
WseeFileStore_auto_2 FileStore bnk01osbm02
Name Persistent Store Target Current Server
MyJMSServer_m01 MyFileStore_m01 bnk01osbm01 (migratable) bnk01osbm01
MyJMSServer_m02 MyFileStore_m02 bnk01osbm02 (migratable) bnk01osbm02
wlsbJMSServer_auto_1 FileStore_auto_1 bnk01osbm01 bnk01osbm01
wlsbJMSServer_auto_2 FileStore_auto_2 bnk01osbm02 bnk01osbm02
WseeJmsServer_auto_1 Wsee FileStore_auto_1 bnk01osbm01 bnk01osbm01
WseeJmsServer_auto_2 Wsee FileStore_auto_2 bnk01osbm02 bnk01osbm02
Name Type
MyJMSSystemModule System
configwiz-jms System
jmsResources System
WseeJmsModule System
Name Type JNDI Name Subdeployment Targets
MyDistributedQueue1 Uniform Distributed Queue MyDistributedQueue1 Default Targetting bnk01osbcluster
MyXAConnectionFactory Connection Factory MyXAConnectionFactory Default Targetting bnk01osbclusterHi Ferp,
Do you have an idea why a successfully recorded WLS session fails when executed from a command line ?It should not fail. Each and every successfully (activation has been done without reporting an error/conflict) recorded session will execute on other servers successfully until a unique name constraint gets violated.
In your case this violation has happened. Your script is trying to create a distributed destination "MyDistributedQueue1" under module "MyJMSSystemModule", targetted to JMS Server "wlsbJMSServer_auto_2" but a Distributed Queue with same JNDI name already exists there.
Please check.
Regards,
Anuj -
WLS-Console export vs JMS browse API
Hi -
We are attempting to solve a problem revolving around JMS pagination and seek your help.
We have a scenario where in certain cases the application queues pile up due to the input flow being far higher than the consumer application capacity.
In this scenario, we would like to have a mechanism where we can drain out the queues.
We wrote up a custom script which would read the messages in a queue and dump the values in a file.
This seems to work for smaller numbers, but when the pile up grows (in number in our case around 20K messages) it appears that the messages are being paged out we see a heavy slow down effect (we have filters on the JMS headers).
One suggestion was to export all messages present (by compromising on the ability to filter messages) through the functionality present in Weblogic console. Wanted to check if the performance of the export (on the WLS console) would remain linear irrespective of the number of messages or would we still hit a performance block if the messages are paged.
TIA,
Senthil
Edited by: 920205 on Mar 12, 2012 3:23 AMExporting messages may be practical here either.
I am not sure if you have looked at the JMS performance tuning guide, which has a section for handling messages backlogs.
My suggestion would be to see if you can add producer flow control and message expiration with error destinations.
For more details, please refer to http://docs.oracle.com/cd/E17904_01/web.1111/e13814/jmstuning.htm#CHDIJEFE
Hope this helps.
Dongbo -
Problem creating JMS Error Destination via Ant in WLS 8.1
We've got several JMS queues in our application. We create the server via Ant (using the wlconfig task).
All is well, the queues have been working fine, until we try to add an error destination queue (after several attempts to handle the message, it'll be sent to the error queue for later troubleshooting).
Here's an example of what we've got now:
<create type="JMSQueue" name="batchQueue" property="jmsqueue">
<set attribute="JNDIName" value="net.nike.cdm.batchQueue"/>
<set attribute="RedeliveryLimit" value="5"/>
</create>We create another queue to handle the errors, and then add an attribute to the first to point to the second:
<create type="JMSQueue" name="batchErrorQueue" property="batchErrorQueue">
<set attribute="JNDIName" value="net.nike.cdm.batchErrorQueue"/>
<set attribute="RedeliveryLimit" value="5"/>
</create>
<create type="JMSQueue" name="batchQueue" property="jmsqueue">
<set attribute="JNDIName" value="net.nike.cdm.batchQueue"/>
<set attribute="RedeliveryLimit" value="5"/>
<set attribute="ErrorDestination" value="${batchErrorQueue}"/>
</create>This seems logical, because if we do this same exact operation via the console, the config.xml goes from this:
<JMSQueue JNDIName="net.nike.cdm.batchQueue"
Name="batchQueue" RedeliveryLimit="5"/>to this:
<JMSQueue ErrorDestination="batchErrorQueue"
JNDIName="net.nike.cdm.batchQueue"
Name="batchQueue" RedeliveryLimit="5"/>
<JMSQueue JNDIName="net.nike.cdm.batchErrorQueue" Name="batchErrorQueue"/>The error we get when trying to do this via Ant is:
[wlconfig] A destination and its ErrorDestination must both be on the same JMS server. (The problematic destination is "batchQueue" on JMS server "cdmdomain"). Also, an ErrorDestination can not be null if the ExpirationPolicy for a destination is "redirect" and a destination can not specify itself as its ErrorDestination.Flipping on -verbose in Ant, the actual exception is:
[wlconfig] SET -mbean cdmdomain:Name=batchQueue,Type=JMSQueue -property ErrorDestination cdmdomain:Name=batchErrorQueue,Type=JMSQue
[wlconfig] A destination and its ErrorDestination must both be on the same JMS server. (The problematic destination is "batchQueue"
s its ErrorDestination.
[if] Error in class net.sf.antcontrib.logic.IfTask
BUILD FAILED
file:C:/viewstore/CDM_R6.5_Development/B2B_CDM/dev/build.xml:1399: Error invoking MBean command: java.lang.NullPointerException
at weblogic.ant.taskdefs.management.WLConfig.handleException(WLConfig.java:567)
at weblogic.ant.taskdefs.management.WLConfig.invokeCommand(WLConfig.java:381)
at weblogic.ant.taskdefs.management.WLConfig.invokeSetCommand(WLConfig.java:235)
at weblogic.ant.taskdefs.management.WLConfig.invokeCreateCommand(WLConfig.java:163)
at weblogic.ant.taskdefs.management.WLConfig.executeCommands(WLConfig.java:106)
at weblogic.ant.taskdefs.management.WLConfig.invokeCreateCommand(WLConfig.java:167)
at weblogic.ant.taskdefs.management.WLConfig.executeCommands(WLConfig.java:106)
at weblogic.ant.taskdefs.management.WLConfig.execute(WLConfig.java:89)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:117)
at org.apache.tools.ant.Task.perform(Task.java:341)
at net.sf.antcontrib.logic.IfTask.execute(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:147)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.Project.executeTargets(Project.java:1255)
at org.apache.tools.ant.Main.runBuild(Main.java:609)
at org.apache.tools.ant.Main.start(Main.java:196)
at org.apache.tools.ant.Main.main(Main.java:235)So, my question is, what are we doing wrong? What IS the syntax to set an error destination for a JMS queue via Ant for WLS 8.1?
Any help would be greatly appreciated
Thanks,
Douglas BullardI get exactly the same problem - was a resolution to this issue found?
Thanks,
Richard Marriott
[email protected] -
JMS Bridge from WLS to OAS not working; automatic redirection to JMS Port
We have setup a JMS Bridge inbetween Weblogic Server 10.3.0 and Oracle App Server 10.1.3. In our test environment it is working fine. But, in LIVE, we are facing a problem. Firewall is there inbetween OAS and WLS.
1. OAS Admin port 6003, is blocked by firewall. So, from outside environment we can't connect to this port.
2. OAS Port 12401 (RMI Port) is not-blocked
3. OAS Port 12601 (JMS Port) is blocked by firewall
4. We created credential "JMS_USER" while configuring QueueConnFactory at OAS end and used it while setting up WLS JMS Bridge
We are using ormi://172.24.255.59:12401/default as Provider URL from Weblogic while creating JMS Bridge.
Problem
========
While connecting from WLS we are getting the following error from WLS end:
javax.jms.JMSException: Unable to create a connection to "apgst366/172.24.255.59:12,601" as user "JMS_USER".
at com.evermind.server.jms.JMSUtils.make(JMSUtils.java:1050)
at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1130)
at com.evermind.server.jms.EvermindConnection.<init>(EvermindConnection.java:132)
at com.evermind.server.jms.EvermindQueueConnection.<init>(EvermindQueueConnection.java:71)
Question
=========
1) We are requesting for 12401; then why the JMS Port 12601 is being referred?
2) Is there any automatic redirection from OAS end?
3) Will unblocking the 12601 port by Firewall help?
Please help me, as this has become a burning issue for us.
Thanks in advance.Can anybody please help me?
-
Can JMS topics and queues be clustered in a WLS 7.0 Cluster?
We are installing a weblogic 7.0 cluster with 1 admin server and 2 managed
node servers. Two nodes have been clustered. We are at the point where we
need to configure JMS. Has any one implemented JMS in WLS 7 clustered
environment? What are the things to watch out when clustering JMS? Can JMS
topics and queues be clustered?
TIA for any helpful hints and comments.
Regards
"Karim Ali" <[email protected]> wrote:
>> Has any one implemented JMS in WLS 7 clustered
>> environment?
I'm currently working on a project with WLS 7 here at work, involving
the implementation of BEA's JMS Cluster. So far, I really haven't had
many hiccups.
"Karim Ali" <[email protected]> wrote:
>> What are the things to watch out when clustering JMS?
At least in WLS 7, the biggest thing that stands out is the lack of
automatic failover. Also, Message Paging -- make sure you configure
paging high/low thresholds. Or, if you don't wish for it to occur but
can't stop the server (very common these days with SLAs), set that
byte/message high threshold to a very large number (correct me if I'm
wrong, but I believe BEA recommends 2^63 -1).
"Karim Ali" <[email protected]> wrote:
>> Can JMS topics and queues be clustered?
Well, since Topics and Queues are extensions of the
javax.jms.Destination interface, the answer is: Yes!
(SIDE NOTE: most people usually refer to them as a [JMS] "destination"
-- it avoids a lot of conceptual baggage and plus, less typing!)
You'll probably want to see this section of BEA's e-docs:
http://edocs.bea.com/wls/docs70/adminguide/jms.html#config_distributed_destinations
later,
Brian J. Mitchell
BEA Systems Administrator
TRX
Atlanta, GA
email: [email protected]
office: 404-327-7238
mobile: 678-283-6530
-
Cannot bind tibco's jms connection factory to wls jndi
we are using wls 6.1 sp2. I am trying to bind tibco's jms connection factory
and queue from a standalone client to weblogic's jndi tree so that apps on wls
can lookup these object in wls jndi locally. I have included the required classes
in the classpath for both the client and wls. I am able to bind the queue successfully
and am able to use it successfully too, but I am not able to bind the tib's queue
or topic connection factory. I am getting the following errors. I checked and
double checked the classpath and
Start server side stack trace:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
InstantiationExcep
tion
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
InstantiationException
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:94)
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:123)
at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
End server side stack trace
; nested exception is:
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
com.tibco.tibjms.n
aming.TibjmsFederatedTopicConnectionFactory; InstantiationException
Start server side stack trace:
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
InstantiationException
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:94)
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:123)
at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
End server side stack trace
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
com.tibco.tibjms.naming.Ti
bjmsFederatedTopicConnectionFactory; InstantiationException
Start server side stack trace:
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
InstantiationException
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:94)
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:123)
at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
End server side stack trace
<<no stack trace available>>
anybody any ideas.
I am also trying to bind the tib's jndi tree in wls jndi tree through a reference
object and am passing a composite name for lookup. I am getting a cannotproceedexception.
I wonder if the weblogic jndi can be federated.
anybody any ideas or pointers
thanks
Devaraju, SushantSeems there is a bug in the tibco jms software.
thanks
Devaraju, Sushant
"sushant" <[email protected]> wrote:
>
we are using wls 6.1 sp2. I am trying to bind tibco's jms connection
factory
and queue from a standalone client to weblogic's jndi tree so that apps
on wls
can lookup these object in wls jndi locally. I have included the required
classes
in the classpath for both the client and wls. I am able to bind the queue
successfully
and am able to use it successfully too, but I am not able to bind the
tib's queue
or topic connection factory. I am getting the following errors. I checked
and
double checked the classpath and
Start server side stack trace:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception
is:
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
InstantiationExcep
tion
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
InstantiationException
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:94)
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:123)
at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown
Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
End server side stack trace
; nested exception is:
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
com.tibco.tibjms.n
aming.TibjmsFederatedTopicConnectionFactory; InstantiationException
Start server side stack trace:
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
InstantiationException
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:94)
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:123)
at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown
Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
End server side stack trace
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
com.tibco.tibjms.naming.Ti
bjmsFederatedTopicConnectionFactory; InstantiationException
Start server side stack trace:
java.io.InvalidClassException: com.tibco.tibjms.naming.TibjmsFederatedTopicConnectionFactory;
InstantiationException
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:94)
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:123)
at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown
Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
End server side stack trace
<<no stack trace available>>
anybody any ideas.
I am also trying to bind the tib's jndi tree in wls jndi tree through
a reference
object and am passing a composite name for lookup. I am getting a cannotproceedexception.
I wonder if the weblogic jndi can be federated.
anybody any ideas or pointers
thanks
Devaraju, Sushant -
View JMS messages wls 10.3
Hello
I m trying to view/delete jms messages in a queue in WLS 10.3. As Administrator user I m able to view/delete the messages but when logged as an user of Monitors group I m not even able to view the messages.
Is there any other user group apart from Administrator which can view messages in WLS 10.3. Please help
Thanks
KranthiTom,
You are correct, I m able to view messages as Monitors group ID even from Hermes.
To check from console I had to update the weblogic.management.runtime.JMSDestinationRuntimeMBean security.
Here the steps I got from support to enable operations on JMSDestinationruntime mbean:
1. In the left pane, select Security Realm.
2. Select “myrealm”.
3. In “Configuration” tab, check “Use Authorization Providers to Protect JMX Access”, click save and then activate changes.
4. Restart the server.
5. In the left pane, select Security Realm.
6. Select “myrealm”.
7. Go to “Users and Groups”.
8. In users, create a new user say “queueuser”, add it to group “Monitors”
9. Adding it to group “Monitors”:
a. Select “myrealm”.
b. Select “Users and Groups”.
c. Click on user name, in right pane select “Groups”.
d. From Parent Groups, select monitors, click arrow pointing right side.
10. Go to “Roles and Policies” - > Realm Policies
11. In Policy table, select “JMX Policy Editor”.
12. Select “Global Scope”, click next.
13. From MBean Types, select “weblogic.management.runtime”
14. Select “JMSDestinationRuntimeMBean”, click next.
15. In Attributes and Operations, select “Operations: Permission to Invoke”.
16. Click on “Create Policy” button and save
17. Click on “Add Condition”, Select “Group” in “Predicate List”, click next, type Monitors, say add. Click “Finish”. -
Microsoft SQL Server JDBC driver and WLS JMS problem?
Greetings,
I'm using the Microsoft SQL Server JDBC driver with WLS with JMS
persisted to SQL Server, during WLS startup the JMS attempts to
read the JMSStore and JMSState tables in the db, if they are
already present (say, from a previous run) the driver kicks out:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can
not re-read row data for column 1.
If the tables are not present, then WLS creates them and
everything proceeds fine. Now, its not a good thing to attempt
to reread row data for a ResultSet, especially for portability. Why is WLS JMS
doing this? is there some config I can use to adjust JMS startup behavior for
persisted JMS stores?
Jay Houghton
Centiv
[email protected]
long exception trace follows:
<Oct 1, 2002 8:29:11 AM EDT> <Info> <JMS> <User connection factory "BroadcastTopicFactory"
is started.>
<Oct 1, 2002 8:29:18 AM EDT> <Info> <JMS> <JMSServer "EnergizerJMSServer", Opening
JDBC store tables "JMSStore
" and "JMSState" using connection pool "JMSConnectionPool".>
<Oct 1, 2002 8:29:20 AM EDT> <Alert> <JMS> <JMSServer "EnergizerJMSServer", store
failed to open, java.io.IOEx
ception: JMS JDBC store, connection pool = <JMSConnectionPool>, prefix = <null>:
recover
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can
not re-read row data for colum
n 1.
at com.microsoft.jdbc.base.BaseResultSet.getLong(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getLong(Unknown Source)
at weblogic.jdbc.pool.ResultSet.getLong(ResultSet.java:304)
at weblogic.jms.store.JDBCIOStream.doRecover(JDBCIOStream.java:618)
at weblogic.jms.store.JDBCIOStream.recover(JDBCIOStream.java:728)
at weblogic.jms.store.JMSStore.recover(JMSStore.java:112)
at weblogic.jms.backend.BEStore.open(BEStore.java:179)
at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:330)
at weblogic.jms.JMSService.createBackEnd(JMSService.java:923)
at weblogic.jms.JMSService.addJMSServer(JMSService.java:1277)
at weblogic.jms.JMSService.addDeployment(JMSService.java:1174)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:329)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:279)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:23
3)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:193)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:608)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:592)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:352)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
at $Proxy40.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub
.java:2734)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:362
at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:154)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:608)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:592)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:352)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
at $Proxy57.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean
_CachingStub.java:480)
at weblogic.management.Admin.startApplicationManager(Admin.java:1151)
at weblogic.management.Admin.finish(Admin.java:571)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:508)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:203)
at weblogic.Server.main(Server.java:35)
Tom,
thanks for the info, I'll bring this to support.
I did try the weblogic jDriver for SQL Server and it works fine, so i think it
must be the way JMS is interacting with the MS driver.
here are my components:
WLS 6.1sp1
Microsoft® SQL Server™ 2000 Driver for JDBC™ is a (Type 4 JDBC) which provides
partial JDBC 2 support (no blobs, clobs, etc)
MS SQL Server 2000 (sp2?)
thanks!
Jay Houghton
[email protected]
Tom Barnes <[email protected]> wrote:
>Hi Jay,
>
>This is not a known issue at BEA as far as I know, perhaps it is the
>result
>of a new driver/database combination. Try using a different driver,
>or a different
>version of the current driver. Meanwhile, use a file store (just as
>reliable but faster) and log a case with customer support, including
>information on your version, service-pack, and what driver you are using.
>
>Tom, BEA
>
>Jay Houghton wrote:
>
>> Greetings,
>>
>> I'm using the Microsoft SQL Server JDBC driver with WLS with JMS
>> persisted to SQL Server, during WLS startup the JMS attempts to
>> read the JMSStore and JMSState tables in the db, if they are
>> already present (say, from a previous run) the driver kicks out:
>>
>> java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet
>can
>> not re-read row data for column 1.
>>
>> If the tables are not present, then WLS creates them and
>> everything proceeds fine. Now, its not a good thing to attempt
>> to reread row data for a ResultSet, especially for portability. Why
>is WLS JMS
>> doing this? is there some config I can use to adjust JMS startup behavior
>for
>> persisted JMS stores?
>>
>> Jay Houghton
>> Centiv
>> [email protected]
>>
>> long exception trace follows:
>>
>> <Oct 1, 2002 8:29:11 AM EDT> <Info> <JMS> <User connection factory
>"BroadcastTopicFactory"
>> is started.>
>> <Oct 1, 2002 8:29:18 AM EDT> <Info> <JMS> <JMSServer "EnergizerJMSServer",
>Opening
>> JDBC store tables "JMSStore
>> " and "JMSState" using connection pool "JMSConnectionPool".>
>> <Oct 1, 2002 8:29:20 AM EDT> <Alert> <JMS> <JMSServer "EnergizerJMSServer",
>store
>> failed to open, java.io.IOEx
>> ception: JMS JDBC store, connection pool = <JMSConnectionPool>, prefix
>= <null>:
>> recover
>> java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet
>can
>> not re-read row data for colum
>> n 1.
>> at com.microsoft.jdbc.base.BaseResultSet.getLong(Unknown Source)
>> at com.microsoft.jdbc.base.BaseResultSet.getLong(Unknown Source)
>> at weblogic.jdbc.pool.ResultSet.getLong(ResultSet.java:304)
>> at weblogic.jms.store.JDBCIOStream.doRecover(JDBCIOStream.java:618)
>> at weblogic.jms.store.JDBCIOStream.recover(JDBCIOStream.java:728)
>> at weblogic.jms.store.JMSStore.recover(JMSStore.java:112)
>> at weblogic.jms.backend.BEStore.open(BEStore.java:179)
>> at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:330)
>> at weblogic.jms.JMSService.createBackEnd(JMSService.java:923)
>> at weblogic.jms.JMSService.addJMSServer(JMSService.java:1277)
>> at weblogic.jms.JMSService.addDeployment(JMSService.java:1174)
>> at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:329)
>> at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:279)
>> at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:23
>> 3)
>> at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:193)
>> at java.lang.reflect.Method.invoke(Native Method)
>> at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:608)
>> at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:592)
>> at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:352)
>> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
>> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
>> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
>> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
>> at $Proxy40.updateDeployments(Unknown Source)
>> at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub
>> java:2734)
>> at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:362
>> )
>> at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:154)
>> at java.lang.reflect.Method.invoke(Native Method)
>> at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:608)
>> at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:592)
>> at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:352)
>> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
>> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
>> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
>> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
>> at $Proxy57.start(Unknown Source)
>> at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean
>> _CachingStub.java:480)
>> at weblogic.management.Admin.startApplicationManager(Admin.java:1151)
>> at weblogic.management.Admin.finish(Admin.java:571)
>> at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:508)
>> at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:203)
>> at weblogic.Server.main(Server.java:35)
>
-
Convert JMS Headers from EBCDIC to ASCII when using JMS Bridge (WLS - WMQ)
I have a Java app on Weblogic 11g using a Message Bridge to talk JMS with IBM Websphere MQ. The MQ server is running on IBM z/OS platform which uses EBCDIC encoding. I need to use the Weblogic message selector feature to filter messages on the bridge coming from Websphere MQ. But the JMS Headers of MSGs posted by WMQ are in EBCDIC format. How can I instruct MQ to convert the msg headers to ASCII before put on the bridge? Is there any flag on bindings config file? Or can I set some WMQ specific header before sending the msg on WLS side?
Thanks in advance.Hi,
Such option is not possible in weblogic but I think this property will help you with in MQ.
Property - Convert EBCDIC newline
Description - EBCDIC code pages contain a new line (NL) character that is not supported by the ASCII code pages (although some ISO variants of ASCII contain an equivalent). If messages are sent from a system that uses EBCDIC code pages (for example, a z/OS system) to a system that uses ASCII, you can control how the EBCDIC newline character is converted into ASCII format.
The default value is NL_TO_LF, which means that the EBCDIC NL character (X'15') is converted to the ASCII line feed character LF (X'0A') for all EBCDIC to ASCII conversions. To convert the EBCDIC NL character according to the conversion tables on your operating system, click TABLE. Note that the results of a TABLE conversion can vary from platform to platform and from language to language; even on the same platform the results might vary if you use different coded character set identifiers (CCSIDs). To convert ISO CCSIDs using the TABLE method and use the NL_TO_LF method for all other CCSIDs, click ISO.
Registry Stanza Key - ConvEBCDICNewline
Also, the MQSeries (not MQSC) adapter provides the data conversion property may handle this conversion as well.
Regards,
Kal
Maybe you are looking for
-
Quickest way to transfer iMovie 09 Files from Macbook Pro to iMac
Hello: We recently got an iMac and I would like to transfer my iMovie 09 files from my macbook pro to the iMac which also has iMovie 09. Can you suggest the quickest and easiest way to do this? I am assumign this can be done since they are both iMovi
-
My sister logged onto my Apple ID when she got her iphone and now her phone number is connected to the account. I want mine on the account
-
How can I export from Report painter to Excel and configure key column to export in two columns, one per data and other per description. R/3 Report Painter A001 A1 description 12,7 A002 A2 description 23,4 A003 A3 description 34,22 as EXCEL:
-
CS3: elements sorting of selection object
Hi people! I think U know that in CS2 app.selection[0] always return LAST selected object and app.selection[app.selection.length] return FIRST selected object its logically good way. but in CS3 Adobe changed this order. And now sorting of objects in
-
Best method for keeping clients updated
I have five seats for Creative Cloud, therefore five workstations that need updates installed on a regular basis. In common with most corporates (I imagine) we don't allow end-users to have Admin access, so IT have to do this for them. It can take qu