MDB deployed in WebLogic and Queues in IBM MQ
Hi all,
I have a MDB which is deployed in Weblogic 10.0 and created queues in IBM MQ 6. The state of MDB is active. But its not picking up the messages from the Queue. And there is no expection thrown also in the Web Logic log file.
To test the MQ series binding file, i created a standalone client, which puts and picks the message. It works fine.If I stop the MQ, Weblogic is throwing error and if I change the Manager name or Connection factory name in binding file, Weblogic throwing error. So its able to get connection.
And the MDB if deployed in OC4J, picks the messages and processes. So MDB also working fine. So I think i have missed out some configuration. Can anyone tell what i have missed out.
Please help me out in this.
Thanks in advance.
Steps used are:
1.Deployed jms-xa-adp.rar file in OC4J.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE connector PUBLIC '-//Sun Microsystems, Inc.//DTD Connector 1.0//EN' 'http://java.sun.com/j2ee/dtds/connector_1_0.dtd'>
<connector>
<display-name>Weblogic Messaging Bridge Adapter (XA)</display-name>
<vendor-name>BEA System</vendor-name>
<spec-version>1.0</spec-version>
<eis-type>JMS Service</eis-type>
<version>1.0.2</version>
<resourceadapter>
<managedconnectionfactory-class>weblogic.jms.adapter.JMSManagedConnectionFactory</managedconnectionfactory-class>
<connectionfactory-interface>weblogic.jms.bridge.AdapterConnectionFactory</connectionfactory-interface>
<connectionfactory-impl-class>weblogic.jms.adapter.JMSBaseConnectionFactory</connectionfactory-impl-class>
<connection-interface>weblogic.jms.bridge.AdapterConnection</connection-interface>
<connection-impl-class>weblogic.jms.adapter.JMSBaseConnection</connection-impl-class>
<transaction-support>XATransaction</transaction-support>
<config-property>
<config-property-name>ConnectionURL</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>file:/C:/JNDIDirectory</config-property-value>
</config-property>
<config-property>
<config-property-name>InitialContextFactory</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.sun.jndi.fscontext.RefFSContextFactory</config-property-value>
</config-property>
<config-property>
<config-property-name>ConnectionFactoryJNDI</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>WLReceiverQCF</config-property-value>
</config-property>
<config-property>
<config-property-name>DestinationJNDI</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>WLReceiverQueue</config-property-value>
</config-property>
<config-property>
<config-property-name>DestinationType</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>Queue</config-property-value>
</config-property>
<config-property>
<config-property-name>AdapterType</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>XATransaction</config-property-value>
</config-property>
<authentication-mechanism>
<authentication-mechanism-type>BasicPassword</authentication-mechanism-type>
<credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
</authentication-mechanism>
<reauthentication-support>false</reauthentication-support>
</resourceadapter>
</connector>
2. Created JMS Module, under it created Foriegn Server, Inside that created Connection factories and Destinations.
3.Deployed the MDB.
weblogic-ejb-jar.xml
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN" "http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd">
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<!-- EJB Reference Name -->
<ejb-name>MDB_Bean</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>200</max-beans-in-free-pool>
<initial-beans-in-free-pool>5</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>WLReceiverQueue</destination-jndi-name>
<initial-context-factory>com.sun.jndi.fscontext.RefFSContextFactory</initial-context-factory>
<connection-factory-jndi-name>WLReceiverQCF</connection-factory-jndi-name>
</message-driven-descriptor>
<!-- EJB Reference Descriptions STARTS-->
<reference-descriptor>
<!-- EJB Resource Reference Descriptions STARTS-->
<resource-description>
<res-ref-name>FCDEV</res-ref-name>
<jndi-name>FCDEV</jndi-name>
</resource-description>
<resource-description>
<res-ref-name>WLReceiverQCF</res-ref-name>
<jndi-name>WLReceiverQCF</jndi-name>
</resource-description>
<!-- EJB Resource Reference Descriptions ENDS-->
<!-- EJB Resource environment Reference Descriptions STARTS-->
<resource-env-description>
<res-env-ref-name>WLReplyQueue</res-env-ref-name>
<jndi-name>WLReplyQueue</jndi-name>
</resource-env-description>
<resource-env-description>
<res-env-ref-name>WLDLQQueue</res-env-ref-name>
<jndi-name>WLDLQQueue</jndi-name>
</resource-env-description>
<!-- EJB Resource environment Reference Descriptions ENDS-->
</reference-descriptor>
<!-- EJB Reference Descriptions ENDS-->
</weblogic-enterprise-bean>
</weblogic-ejb-jar>ejb-jar.xml
<?xml version="1.0"?>
<ejb-jar id="MDB_Bean" version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
<enterprise-beans>
<message-driven>
<display-name>MDB Bean</display-name>
<ejb-name>MDB_Bean</ejb-name>
<ejb-class>com.mdb.MDBBean</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Container</transaction-type>
<env-entry>
<env-entry-name>propertyPath</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>D:/MDB/config/</env-entry-value>
</env-entry>
<activation-config>
<activation-config-property>
<activation-config-property-name>DestinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>DestinationName</activation-config-property-name>
<activation-config-property-value>WLReceiverQueue</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>ConnectionFactoryJndiName</activation-config-property-name>
<activation-config-property-value>WLReceiverQCF</activation-config-property-value>
</activation-config-property>
</activation-config>
<resource-ref>
<description>Connection Factory for Response / DLQ</description>
<res-ref-name>WLReceiverQCF</res-ref-name>
<res-type>javax.jms.XAQueueConnectionFactory</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<resource-env-ref>
<description>Queue to send reply to</description>
<resource-env-ref-name>WLReplyQueue</resource-env-ref-name>
<resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
</resource-env-ref>
<resource-env-ref>
<description>MDB Dead Letter Queue</description>
<resource-env-ref-name>WLDLQQueue</resource-env-ref-name>
<resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
</resource-env-ref>
</message-driven>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>MDB_Bean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>Edited by: shruthi04 on Nov 22, 2008 10:51 AM
Edited by: shruthi04 on Nov 22, 2008 11:42 AM
Edited by: shruthi04 on Nov 22, 2008 11:44 AM
Does your MDB require transactions ? If so you need to XA enable the connection factory. Looks like you are using a transactional MDB with non XA connection factory.
Similar Messages
-
Shell script to monitor the application health deployed on weblogic
Hi All,
Is it possible to monitor the health of a application deployed on weblogic and send a mail if it is not running. I have JasperServer reporting application deployed on weblogic. The shell script should check if the application is running, if it down a mail should be sent.
ThanksYou can use WLST to get information on the state of your deployments, for example,
the python script can be used
class DeploymentInfo:
def __init__(self,name,target):
self.name = name;
self.target = target;
def getName(self):
return self.name;
def getTarget(self):
return self.target;
print 'CONNECT TO ADMIN SERVER';
connect('weblogic', 'transfer11g');
print 'OBTAINING DEPLOYMENT INFORMATION';
deploymentsInfo = [];
applications = cmo.getAppDeployments();
for application in applications:
name = application.getName();
target = application.getTargets()[0].getName();
deploymentsInfo.append(DeploymentInfo(name, target));
print 'CHANGE TO DOMAIN RUNTIME ENVIRONMENT';
domainRuntime();
print 'APPLICATION LIFE CYCLE INFORMATION';
applicationRuntime = cmo.getAppRuntimeStateRuntime();
for deploymentInfo in deploymentsInfo:
state = applicationRuntime.getCurrentState(deploymentInfo.getName(), deploymentInfo.getTarget())
print 'Application: ' + deploymentInfo.getName() + ', State: ' + state;
if (state != 'STATE_ACTIVE'):
startApplication(deploymentInfo.getName());In the example above the application gets started when it is not running, you can also
send an e-mail by using the smtplib package, for example
import smtplib;
server = smtplib.SMTP('email-server-host');
server.set_debuglevel(1);
server.sendmail(fromaddress, toaddress, message);
server.quit();More information on the package smtplib can be found here:
http://www.jython.org/docs/library/smtplib.html -
Deploying MDB on BEA WebLogic 7.0 to listen to Oracle AQ
Hello All:
I have been tasked to create a MDB that will listen to a queue in AQ. What I am curious about, however, is if anyone has ever had any experience in configuring the WebLogic server so it can interface with, and listen to, AQ?
I am going to create a concrete sender class to handle the transmission of messages inside the network, but the design goal, for scalability purposes, is to use a MDB to listen to the queue. We cannot use any Oracle Application Server or Web Server per my client's directives.
Please help. Thanks.I am very interested in viewing your information on Oracle AQ and BEA 8.1 but the link you provided,
http://marvel.oracle.com/pls/otn/f?p=17000:8:25148205767784132
displays an error page with the following message:
ORA-01400: cannot insert NULL into ("DEVTRENDS"."WWC_ASK_QUESTION_ACCESS_LOG$"."DISPLAYID")
I would really appreciate some help I have been hunting for documentation on how to access AQ from a Java. I am trying to write a JCA adapter for BEA WLS 8.1 to access the AQ for integration purposes.
Thanks -
What create a QUEUE in IBM MQ and bind in OC4J without restart OC4J ??
My problem is, When create a new Queue in IBM MQ Series, how to lookup the same in my J2EE application with container OC4J running ???
I create a Queue in MQ Series and is necessary lookup the same by application deployed in OAS 10.1.3 without restart the OC4J container.
this is possible ??
I use the JCA 1.5 to connect to MQ Series.Hi,
There is some demo for setup IBM MQ in oc4j, you may try that.
OTN:http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/index.html
In order to apply the new MQ in oc4j, you need to restart the oc4j.
Rocky -
SSL Between Weblogic and IBM MQ
Dear All,
I would like to know the SSL configuration steps between Weblogic and MQ Communication.
The existing setup is, To put message in MQ, We are using MQ Java API directly. To get message from MQ, We are using JMS API with binding file.
Now, we are in a position to enable SSL in those communication between Weblogic and MQ. Here Weblogic is Treated as Client & MQ is treated as Server. If any one throw some light here would be greatful for us to enable 2-way SSL.
In High Level, Initially we planned for One-Way SSL like below,
1. Create the Trust Store in MQ Server
gsk7capicmd -keydb -create -db "/var/mqm/qmgrs/WLMQTest/ssl/WLMQTest.kdb" -pw serverpass -type cms -expire 365 -stash -fips
2. Create Self-Signed Certificate Initially for MQ Server
gsk7capicmd -cert -create -db "/var/mqm/qmgrs/WLMQTest/ssl/WLMQTest.kdb" -pw serverpass -label ibmwebspheremqwlmqtest -dn "CN=WLMQTest,O=,C=" -expire 365 -fips -sigalg sha1
gsk7capicmd -cert -extract -db "/var/mqm/qmgrs/WLMQTest/ssl/WLMQTest.kdb" -pw serverpass -label ibmwebspheremqwlmqtest -target "/var/mqm/qmgrs/WLMQTest/ssl/*WLMQTest.crt*" -format ascii -fips
3. Create the Key Store in Weblogic Server
keytool -genkey -alias mydomain -keyalg RSA -keystore keystore.jks -keysize 2048
4. Copy the Public SSL Server Certificate to the Weblogic Server
Copied the WLMQTest.crt from MQ Server into a directory under Weblogic Server Domain
The below command list the content of the keystore.jks
keytool -list -keystore keystore.jks
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
mydomain, Dec 26, 2011, PrivateKeyEntry,
Certificate fingerprint (MD5): E7:B6:4C:02:A7:DE:A3:66:27:66:38:A1:87:DF:8F:0F
And tried to import the WLMQTest.crt
keytool -import -alias mydomain -file WLMQTest.crt -keystore keystore.jks -storepass serverpass
We got the error like below,
keytool error: java.lang.Exception: Public keys in reply and keystore don't match
5. Configuring the Channels.
Please advice, Is it a right way? Positively expected your valuable comments
Edited by: user10094300 on Dec 26, 2011 1:17 AMCheck this:
http://www.ibm.com/developerworks/websphere/library/techarticles/0510_fehners/0510_fehners.html -
CMP and BMP configure for deploying in weblogic
how to run CMP and BMP in weblogic and configure in welogic
tell me the steps to be followed for connection pooling and deployement and configure in weblogic builder....Disagree that CMP is always better than BMP. CMP is in reality merely an implementation of BMP that provides a declarative method of providing a persistence layer. You could easily use other declarative systems to provide the same service, but you are alway relying on BMP and when CMP fails to provide you need to return to the raw BMP.
It a bit like the difference between high/low level languages. We don't normally write direct assembly (yes, I am aware that real programmers yada yada yada) but we do use it, and sometimes you actually have to write it for specialised applications - most notably for high performance.
Both have their pluses and minuses, and you need to know when to use one over the other. -
I am cross posting to transaction & jms, sorry if this is a mistake...
We have a setup where JMS messages are published to a topic. The posting is transacted
(XA) and is a consequence of a CMP update so JMS and JDBC (Oracle OCI) cooperate
to commit, or not.
Most of the time, transactions issue just a few JMS messages but at least once
a day, we issue hundred of thousands of such messages (max has been about 600000
but typically 300000).
Our setup is four instances of Weblogic 6.1SP3 (two clustered, two not), the topic
is on one of them (all 3 other servers connect to that instance to publish) and
we have a couple MDBs deployed only on the instance that has the JMSServer and
they all listen to the local topic. The transactionnal settings of these MDBs
is CMT and XA (because the beans will write to the DB). Furthermore, these MDB
have been setup to be durable. One of these is just a logger MDB with 20 instances
max.
It worked fine for a couple weeks but we have been running into problems for the
past two days. All of a sudden, the server no longer responds to weblogic.ADMIN
PING. The server log indicates the following error repetitively (MB of logs just
of this)
####<13 nov. 03 23:15:41 CET> <Alert> <JMS> <XXXXXXX> <send1> <ExecuteThread:
'32' for queue: 'default'> <> <> <040060> <JMSServer "OutputServerSend1", unhandled
exception during rollback, java.lang.NullPointerException.>
java.lang.NullPointerException
at weblogic.jms.backend.BEDurableTopicMessageInfo.rollbackReceiveTran(BEDurableTopicMessageInfo.java:352)
at weblogic.jms.backend.BEXATranEntrySubscribe.startRollback(BEXATranEntrySubscribe.java:145)
at weblogic.jms.backend.BEXATranEntry.execute(BEXATranEntry.java:127)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
The logger MDB seems to have started processing the JMS messages. This means that
the transaction that included the JMS message publishing must have commited. Unfortunatly,
there are only 20 log lines before the server restart, so the server must have
hanged although it did commit the messages processed by the logger since the log
messages are apparently not repeated. I have no idea why. I think this is coherant
with the fact that exception above seems to relate to subscribers.
When we restart the server, the topic gets purged and seem to be processed (we
have not found a way to verify that each message has been processed but it's looking
good)
Any ideas ?
Thanks
Philippe
I am cross posting to transaction & jms, sorry if this is a mistake...
We have a setup where JMS messages are published to a topic. The posting is transacted
(XA) and is a consequence of a CMP update so JMS and JDBC (Oracle OCI) cooperate
to commit, or not.
Most of the time, transactions issue just a few JMS messages but at least once
a day, we issue hundred of thousands of such messages (max has been about 600000
but typically 300000).
Our setup is four instances of Weblogic 6.1SP3 (two clustered, two not), the topic
is on one of them (all 3 other servers connect to that instance to publish) and
we have a couple MDBs deployed only on the instance that has the JMSServer and
they all listen to the local topic. The transactionnal settings of these MDBs
is CMT and XA (because the beans will write to the DB). Furthermore, these MDB
have been setup to be durable. One of these is just a logger MDB with 20 instances
max.
It worked fine for a couple weeks but we have been running into problems for the
past two days. All of a sudden, the server no longer responds to weblogic.ADMIN
PING. The server log indicates the following error repetitively (MB of logs just
of this)
####<13 nov. 03 23:15:41 CET> <Alert> <JMS> <XXXXXXX> <send1> <ExecuteThread:
'32' for queue: 'default'> <> <> <040060> <JMSServer "OutputServerSend1", unhandled
exception during rollback, java.lang.NullPointerException.>
java.lang.NullPointerException
at weblogic.jms.backend.BEDurableTopicMessageInfo.rollbackReceiveTran(BEDurableTopicMessageInfo.java:352)
at weblogic.jms.backend.BEXATranEntrySubscribe.startRollback(BEXATranEntrySubscribe.java:145)
at weblogic.jms.backend.BEXATranEntry.execute(BEXATranEntry.java:127)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
The logger MDB seems to have started processing the JMS messages. This means that
the transaction that included the JMS message publishing must have commited. Unfortunatly,
there are only 20 log lines before the server restart, so the server must have
hanged although it did commit the messages processed by the logger since the log
messages are apparently not repeated. I have no idea why. I think this is coherant
with the fact that exception above seems to relate to subscribers.
When we restart the server, the topic gets purged and seem to be processed (we
have not found a way to verify that each message has been processed but it's looking
good)
Any ideas ?
Thanks
Philippe
-
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. -
How to connect weblogic 8.1 to IBM MQ Series from remote machines?
Hi,
I am trying to connect WebLogic 8.1 to IBM MQ Series 6.0 both are running in a seperate machines.Can we do using JNDI services? Can anyone help me to fix this issue?I'm cutting/pasting my notes on the topic, including MQ specific notes. Start with the Integrating Remote JMS Providers FAQ (link below). You can also search this newsgroup for answers.
Tom
JMS Integration of Foreign Vendors with BEA WebLogic Server
The following notes are derived mostly from "http://dev2dev.bea.com/technologies/jms/index.jsp".
For additional questions, a good forum for WebLogic questions in general is "newsgroups.bea.com". These can be mined for information by using Google's newsgroup search function.
JMS Integration Overview
- For integration with "non-Java" and/or "non-JMS" platforms, see "Non-Java Integration Options" below.
- For a foreign JMS vendor to participate in a WL transaction it must support XA. Specifically, it must support the javax.jms.XA* interfaces.
- In WL versions 6.0 and up it is possible to make synchronous calls to foreign JMS vendors participate in a WL transaction as long as the foreign vendor supports XA.
- WL 6.0 and 6.1 MDBs can be driven by foreign vendors non-transactionally. They can be driven transactionally by a select few foreign vendors (MQ is not part of the select few)
- WL 7.0 and later, MDBs can be driven by foreign vendors transactionally and non-transationally.
- WL 6.1 and later WL provides a messaging bridge feature. Messaging bridges forward messages between any two JMS destinations, including foreign destinations, and can transfer messages transactionally or non-transactionally.
- WL 8.1 JMS provides additional features that simplify transactional and JNDI integration of foreign vendors. See http://edocs.bea.com/wls/docs81/jms/intro.html#jms_features and http://e-docs.bea.com/wls/docs81/faq/interop.html
Integration with 8.1 Details
To start, first read the "Integrating Remote JMS Providers FAQ" (released in Dec 2004) at:
http://e-docs.bea.com/wls/docs81/faq/interop.html
A good overview of 8.1 JMS interop capability is the presentation "Integrating Foreign JMS Providers with BEA WebLogic Server" here:
http://www.bea.com/content/files/eworld/presentations/Wed_03_05_03/Application_Servers/1097-Foreign_JMS_Providers_WLS.pdf
This document refers to helpful new 8.1 features, which simplify integration. These include:
http://edocs.bea.com/wls/docs81/ConsoleHelp/jms_config.html#accessing_foreign_providers
http://edocs.bea.com/wls/docs81/jms/j2ee_components.html#1033768
And are also summarized here (under interoperability):
http://edocs.bea.com/wls/docs81/jms/intro.html#jms_features
Also read the MDB documentation, which extensively covers integrating foreign vendors:
http://edocs.bea.com/wls/docs81/ejb/message_beans.html
The 8.1 features are likely sufficient for most 8.1 integration needs, but you may want to refer to the "Using Foreign JMS Providers With WLS" white-paper mentioned below, which is 7.0 specific but contains specific examples of configuring non-WebLogic JMS vendors. See also notes on "MQ" below.
Integration with 6.1 and 7.0 Details
Read the "Using Foreign JMS Providers With WLS" white-paper:
http://dev2dev.bea.com/products/wlserver/whitepapers/jmsproviders.jsp
Note that this white-paper does not take into account 8.1 features.
For 7.0 read the extensive 8.1 MDB documentation, which largely also applies to 7.0:
http://edocs.bea.com/wls/docs81/ejb/message_beans.html
Non-Java Integration Options
- WL JMS has a JNI based C client which is available for Windows and some UNIX platforms. This C client supports 7.0 and up, and will be officially packaged with WLS in 9.0 (virtually unchanged). The C API is currently only supported through the jms newsgroup. See "JMS C API", here:
http://dev2dev.bea.com/technologies/jms/index.jsp
- WL supports direct Windows COM access through its "JCOM" feature. This doesn't include the JMS API, but one can invoke EJBs which in turn invoke JMS. See
http://e-docs.bea.com/wls/docs61/jcom.html
http://e-docs.bea.com/wls/docs70/jcom/
http://e-docs.bea.com/wls/docs81/jcom/
- Similar to JCOM, but more advanced and supported on more platforms, WL supports access via the standard IIOP protocol. You can use the BEA Tuxedo C client for this purpose (no license fee). This doesn't include the JMS API, but one can invoke EJBs which in turn invoke JMS. See
http://e-docs.bea.com/wls/docs81/rmi_iiop/
http://e-docs.bea.com/wls/docs70/rmi_iiop/
http://e-docs.bea.com/wls/docs61/rmi_iiop/
Unlike most other approaches, the IIOP client approach also allows the client to begin and commit user (JTA) transactions (not configured).
- If you already have a BEA Tuxedo license, one option is communicate through BEA Tuxedo (which has various APIs on Windows) and configure a WebLogic Server to respond to these requests via the WTC bridge. Search for "WTC" in the BEA docs. Unlike most other approaches, the Tuxedo API approach also allows the client to begin and commit user (JTA) transactions.
- Another approach is to interop via web-service standards. Or even to simply to invoke a servlet on the WL server using a basic HTTP call from the client. These operation in turn can invoke the JMS API. There is a white-paper on "Interoperability Study of BEA WebLogic Workshop 8.1 and Microsoft .NET 1.1 Web Services", that demonstrates web-services here:
http://ftpna2.bea.com/pub/downloads/WebLogic-DotNet-Interop.pdf
- Yet another approach is to use a third party product that is designed to wrap any JMS vendor. There are even open source versions. In no particular order, here are some examples: Open3 WinJMS, CodeMesh, Active JMS, SpiritSoft
- Finally, there are .NET/C/C++ integration libraries that are not specific to JMS, some examples are JNBridge, Jace, and CodeMesh.
Notes on MQ Remote Capable XA Clients
Until recently, IBM MQ JMS clients could not work transactionally unless they were running on the same host as their MQ server. This is a limitation unique to MQ that was relaxed with the introduction of IBM's new "WebSphere MQ Extended Transactional Client". See:
http://publibfp.boulder.ibm.com/epubs/pdf/csqzar00.pdf
The product is new, and for some reason, configuration of this client seems to be tricky, even when WebLogic is not involved at all. Oddly, the main sticking point seems to be simply making sure that class paths refer to the required IBM jars:
- Required on WLS where MQ objects are bound into JNDI:
com.ibm.mq.jar, com.ibm.mqjms.jar
- Required only if MQ objects are bound into JNDI on a different server:
com.ibm.mq.jar
If there are problems when using this client, first get it to work using a pure IBM client without any BEA classes involved. Once that is working, search the WL JMS newsgroup for answers and/or contact BEA customer support.
Notes on Oracle AQ Integration
If problems are encountered integrating Oracle's built-in queuing (Oracle AQ) JMS client, there is publicly available wrapper code that can aid integrating AQ directly into MDBs, JMS, or the messaging bridge. The solution is titled "Startup class to bind AQ/Referenceable objects to WLS JNDI", is not supported by BEA, and is posted to:
http://dev2dev.bea.com/codelibrary/code/startupclass.jsp (older version)
http://xa-compliant-oracleaq.projects.dev2dev.bea.com (newer version)
Caveats:
It may be that the solution doesn't directly support concurrent consumers. Perhaps Oracle requires that concurrent consumers each have a unique JMS connection? As a work-around, parallel message processing can be achieved indirectly by forwarding AQ messages into a WL JMS destination - which do support concurrent processing.
Up-to-date versions of Oracle may be required. For more information, google search the weblogic.developer.interest.jms newsgroup for "Oracle" and "AQ".
MDB Thread Pool Notes
WL7.0SP? and WL8.1 and later support the "dispatch-policy" field to specify which thread pool an MDB uses to run its instances. In most cases this field should be configured to help address potential performance issues and/or dead-locks:
http://edocs.bea.com/wls/docs81/ejb/DDreference-ejb-jar.html#dispatch-policy
(Note that "dispatch-policy" is ignored for non-transactional foreign vendors; in this case, the MDB "onMessage" callback runs in the foreign vendor's thread.)
MDB Concurrency Notes
Queue MDBs driven by foreign providers can run multiple instances concurrently. Topic MDBs driven by foreign providers are limited to one instance (not sure, but transactional foreign driven topic MDBs may not have this limitation). The size of the thread pool that the MDB runs in and the "max-beans-in-free-pool" descriptor limit how many instances run concurrently.
Design Guide-Lines and Performance Tuning Notes
The "WebLogic JMS Performance Guide" white-paper contains detailed design, performance, and tuning information for Clustering, Messaging Bridge, JMS, and MDBs.
http://dev2dev.bea.com/products/wlserver/whitepapers/WL_JMS_Perform_GD.jsp -
My problem in Weblogic and Message Driven Bean for Topic
Hello to all
I used this page (http://www.ecomputercoach.com/index.php/component/content/article/90-weblogic-jms-queue-setup.html?showall=1)
for setup JMS Server, Queue, Connection Factory on Weblogic Server
and I created a Message Driven Bean ,I used those Queue , and all things was OK
But I wanted to setup a Topic and use it in this manner
I created a Topic like previous steps for setup Queue
(http://www.ecomputercoach.com/index.php/component/content/article/90-weblogic-jms-queue-setup.html?showall=1)
Except in Step 3 ,I selected Topic instead of Queue
then I created a Message Driven Bean in JDeveloper , my Message Driven Bean is like this:
@MessageDriven(mappedName = "jndi.testTopic")
<p>
public class aliJMS1_MessageDrivenEJBBean implements MessageListener {
public void onMessage(Message message) {
if(message instanceof TextMessage ){
TextMessage txtM=(TextMessage) message;
try{
System.out.println(txtM.getText());
}catch(Exception ex){
ex.printStackTrace();
</p>
When I deploy the Application , Weblogic shows me this error:
+<Aug 30, 2011 11:32:28 AM PDT> <Warning> <EJB> <BEA-010061> <The Message-Driven EJB: aliJMS1_MessageDrivenEJBBean is unable to connect to th+
e JMS destination: jndi.testTopic. The Error was:
+[EJB:011011]The Message-Driven EJB attempted to connect to the JMS destination with the JNDI name: jndi.testTopic. However, the object with+
the JNDI name: jndi.testTopic is not a JMS destination, or the destination found was of the wrong type (Topic or Queue).>
And when I send message to the topic The Message Dirven Bean dosen't work
But when I create an ordinary Java application like this (it uses that Tpoic) :
import java.io.*;
import java.util.*;
import javax.transaction.*;
import javax.naming.*;
import javax.jms.*;
public class TopicReceive implements MessageListener
public final static String JNDI_FACTORY =
"weblogic.jndi.WLInitialContextFactory";
public final static String JMS_FACTORY =
"jndi.testConnectionFactory";
public final static String TOPIC = "jndi.testTopic";
private TopicConnectionFactory tconFactory;
private TopicConnection tcon;
private TopicSession tsession;
private TopicSubscriber tsubscriber;
private Topic topic;
private boolean quit = false;
public void onMessage(Message msg) {
try {
String msgText;
if (msg instanceof TextMessage) {
msgText = ((TextMessage)msg).getText();
} else {
msgText = msg.toString();
System.out.println("JMS Message Received: " + msgText);
if (msgText.equalsIgnoreCase("quit")) {
synchronized (this) {
quit = true;
this.notifyAll();
} catch (JMSException jmse) {
jmse.printStackTrace();
public void init(Context ctx, String topicName) throws NamingException,
JMSException {
tconFactory = (TopicConnectionFactory)ctx.lookup(JMS_FACTORY);
tcon = tconFactory.createTopicConnection();
tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
topic = (Topic)ctx.lookup(topicName);
tsubscriber = tsession.createSubscriber(topic);
tsubscriber.setMessageListener(this);
tcon.start();
public void close() throws JMSException {
tsubscriber.close();
tsession.close();
tcon.close();
public static void main(String[] args) throws Exception {
InitialContext ic = getInitialContext("t3://127.0.0.1:7001");
TopicReceive tr = new TopicReceive();
tr.init(ic, TOPIC);
System.out.println("JMS Ready To Receive Messages (To quit, send a \"quit\" message).");
synchronized (tr) {
while (!tr.quit) {
try {
tr.wait();
} catch (InterruptedException ie) {
tr.close();
private static InitialContext getInitialContext(String url) throws NamingException {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
env.put(Context.PROVIDER_URL, url);
env.put("weblogic.jndi.createIntermediateContexts", "true");
return new InitialContext(env);
It's OK and shows messages When I send message to the Topic
Now I want know why the Message Driven Bean doesn't work for those Topic
I want create a Message Driven Bean for Topic in the same way I created for Queue
I don't know what is problem , please advice me
ThanksCould you try adding a activationconfig to the message-driven bean, for example,
@MessageDriven(mappedName = "jndi.testTopic", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationName", propertyValue = "jndi.testTopic"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic")
public class aliJMS1_MessageDrivenEJBBean implements MessageListener {
public void onMessage(Message message) {
if(message instanceof TextMessage ){
TextMessage txtM=(TextMessage) message;
try{
System.out.println(txtM.getText());
}catch(Exception ex){
ex.printStackTrace();
} -
MDB Deployment Problem in JBoss 4.0.3SP1
Hi All,
I am upgrading my App Server from JBoss 323 to JBoss 403.
I had some MDBs, that are running successfully in JBoss 323.
But when I tried to redeploy them(after recompiling with jdk1.5), I am facing few issues with them.
First of all, I have a MDB whose destination was in some other Jboss server instance. That means I am trying to connect my destination "Queue" as remotely. At that time it is thorowing exception like as follows at my server startup time.......
2006-04-17 07:17:15,191 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Looking up provider adapter: java:/Server1JMSProvider
2006-04-17 07:17:15,191 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Provider adapter: org.jboss.jms.jndi.JNDIProviderAdapter@20dcb7
2006-04-17 07:17:15,191 DEBUG [org.jboss.ejb.plugins.jms.DLQHandler] Creating DLQHandler
2006-04-17 07:17:15,191 DEBUG [org.jboss.ejb.plugins.jms.DLQHandler] Using factory: org.jboss.mq.SpyXAConnectionFactory@1ebe8ec
2006-04-17 07:17:15,191 DEBUG [org.jboss.ejb.plugins.jms.DLQHandler] Created connection: Connection@10751758[token=ConnectionToken:null/b3e21fe26fd3b44f4a0c5bb69995e669 rcvstate=STOPPED]
2006-04-17 07:17:15,472 DEBUG [org.jboss.mq.referenceable.SpyDestinationObjectFactory] SpyDestinationObjectFactory->getObjectInstance()
2006-04-17 07:17:15,488 DEBUG [org.jboss.ejb.plugins.jms.DLQHandler] Using Queue: QUEUE.DLQ
2006-04-17 07:17:15,488 DEBUG [org.jboss.ejb.plugins.jms.DLQHandler] Created DLQHandler
2006-04-17 07:17:15,488 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker] context: javax.naming.InitialContext@106989e
2006-04-17 07:17:15,488 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker] jndiSuffix: [u]xxxQueue[/u]
2006-04-17 07:17:15,488 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Got destination type Queue for LifecycleMDB
2006-04-17 07:17:15,488 DEBUG [org.jboss.jms.ConnectionFactoryHelper] using connection factory: org.jboss.mq.SpyXAConnectionFactory@1ebe8ec
2006-04-17 07:17:15,488 DEBUG [org.jboss.jms.ConnectionFactoryHelper] using username/password: null/null
2006-04-17 07:17:15,488 DEBUG [org.jboss.jms.ConnectionFactoryHelper] created XAQueueConnection: Connection@13605872[token=ConnectionToken:null/ea8d256e12a297e358803b37d7bfee4d rcvstate=STOPPED]
2006-04-17 07:17:15,488 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Using client id: null
2006-04-17 07:17:15,488 WARN [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Could not find the queue destination-jndi-name=queue/[u]xxxQueue[/u]
2006-04-17 07:17:15,488 WARN [org.jboss.ejb.plugins.jms.JMSContainerInvoker] destination not found: queue/[u]xxxQueue[/u] reason: javax.naming.NameNotFoundException: [u]xxxQueue[/u] not bound
2006-04-17 07:17:15,488 WARN [org.jboss.ejb.plugins.jms.JMSContainerInvoker] creating a new temporary destination: queue/[u]xxxQueue[/u]
2006-04-17 07:17:15,488 DEBUG [org.jboss.mq.server.jmx.DestinationManager] Attempting to create destination: jboss.mq.destination:service=Queue,name=xxxQueue; type=org.jboss.mq.server.jmx.Queue
2006-04-17 07:17:15,488 INFO [org.jboss.mq.server.jmx.Queue.xxxQueue] Registration is not done -> stop
2006-04-17 07:17:15,488 ERROR [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Reconnect failed: JMS provider failure detected:
org.jboss.deployment.DeploymentException: Error during queue setup; - nested throwable: (javax.management.MBeanException)
at org.jboss.deployment.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:39)My jboss.xml was
<jboss>
<enterprise-beans>
<message-driven>
<ejb-name>LifecycleMDB</ejb-name>
<destination-jndi-name>queue/xxxQueue</destination-jndi-name>
<invoker-bindings>
<invoker>
<invoker-proxy-binding-name>server1-message-driven-bean</invoker-proxy-binding-name>
</invoker>
</invoker-bindings>
<resource-ref>
<res-ref-name>jms/QueueFactory</res-ref-name>
<jndi-name>UIL2XAConnectionFactory</jndi-name>
</resource-ref>
</message-driven>
</enterprise-beans>
<invoker-proxy-bindings>
<invoker-proxy-binding>
<name>server1-message-driven-bean</name>
<invoker-mbean>default</invoker-mbean>
<proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
<proxy-factory-config>
<JMSProviderAdapterJNDI>Server1JMSProvider</JMSProviderAdapterJNDI>
<ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
<CreateJBossMQDestination>true</CreateJBossMQDestination>
<MaximumSize>15</MaximumSize>
<MaxMessages>1</MaxMessages>
<MDBConfig>
<ReconnectIntervalSec>10</ReconnectIntervalSec>
<DLQConfig>
<DestinationQueue>queue/DLQ</DestinationQueue>
<MaxTimesRedelivered>10</MaxTimesRedelivered>
<TimeToLive>0</TimeToLive>
</DLQConfig>
</MDBConfig>
</proxy-factory-config>
</invoker-proxy-binding>
</invoker-proxy-bindings>
</jboss>and my deployment file consist of the following code
<server>
<!-- The JMS provider loader -->
<mbean code="org.jboss.jms.jndi.JMSProviderLoader"
name="jboss.mq:service=JMSProviderLoader,name=Server1MQProvider">
<attribute name="ProviderName">Server1JMSProvider</attribute>
<attribute name="ProviderAdapterClass">
org.jboss.jms.jndi.JNDIProviderAdapter
</attribute>
<!-- The combined connection factory -->
<attribute name="FactoryRef">java:/XAConnectionFactory</attribute>
<!-- The queue connection factory -->
<attribute name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
<!-- The topic factory -->
<attribute name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
<!-- Uncomment to use HAJNDI to access JMS-->
<attribute name="Properties">
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://SERVER:1499
</attribute>
</mbean>
</server>Did you find a solution to this problem?
-
MDB receive a message and then call an external web service
Title basically says it all, but I'm looking for suggestions for the best way to have a message driven bean receive a message then process it and call an external web service with the results. This seems like a straightforward problem to solve but I keep getting stuck in the deployment to weblogic when I do it my way so I'm looking for new ideas.
Basically, I have an MDB that gets deployed to WL 10.3 and receives messages just fine. Also, I have a standalone class, that runs from the command line or IDE, that can send messages to the external web service. But when I try to bring the code from the standalone class into the MDB and get it deployed, I can't get all the dependencies to resolve.
So, is there a proper (quick and easy) way to do this? Which wizard should I be using to get Workshop to create web service client so that I can use it in my MDB project? Any suggestions to tutorials?
Thanks,
MattYes BusinessService is the reference point used in OSB to call a backend provider service. So we need to configure the business service based on the external service (they can be http based, jms based, etc ..)
In your case I am assuming it is a http based web service. So below are the steps to be done:
1. Create a business service (if you dont have a wsdl then create it as "Any soap type" else upload the wsdl as a wsdl resource and then use it) and configure the url of the business service with the URL of the external service you want to invoke.
2. From the proxy flow, have a service callout action and select the business service. Then configure the appropriate body and header variables.
3. Then test the proxy service from the test console, you should be able to see the response from the external service as a part of the service callout response.
Let me know if you still have issues.
Thanks,
Patrick -
Unable to post messages to Weblogic JMS queue
Hi All,
I am using weblogic 10.3.3.0, SOA and JDev 11.1.1.3.0.
(Weblogic came with JDev.)
I have created a JMS Server, JMS Module, ConnectonFactory and Queue in weblogic.
I am able to see that queue in my JDev and trying to enque some simple message as opaque data.
But I am getting below error while enqueuing.
CF: jms/PavanQueue/PavanQueueCF
QueueName: jms/Pavan4sQueue
<fault>
<bpelFault>
<faultType>0</faultType>
<bindingFault>
<part name="summary">
<summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'Produce_Message' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. HelloWorldBPEL:EnqueueToMyQueue [ Produce_Message_ptt::Produce_Message(opaque) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='jms/PavanQueue/PavanQueueCF'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to jms/PavanQueue/PavanQueueCF. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary>
</part>
<part name="detail">
<detail>JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='jms/PavanQueue/PavanQueueCF'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to jms/PavanQueue/PavanQueueCF. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server </detail>
</part>
<part name="code">
<code>12510</code>
</part>
</bindingFault>
</bpelFault>
</fault>I am able to see Weblogic-ra.xml files in 5 locations.
one in user_projects/....../JmsAdapter/../Meta-INF
and other in wlserver_10.3\server\lib JMS folders.
Which file I have to check. And I did not find any details about CFs or Queues in these XMLs.
Please show the way.
Regards
PavanKumar.M
Edited by: pavan4s on Sep 17, 2010 6:56 AMHi !
Did you add jms/PavanQueue/PavanQueueCF in the JMSAdapter outbound connection pools ?
Deployments > JMS Adapter > Configuration > Outbound connection pools
Add jms/PavanQueue/PavanQueueCF with the correct parameters.
Then, don't forget to redeploy the JMS Adapter.
Romain. -
OBIEE on RHEL5.5 using clustering of 4 nodes deployed on weblogic
It is my first experiance of installaing OBI in production enviornament. I have to install OBIEE 10.1.3.4.1 on four IBM HS22 Blade Servers, under RHEL 5.5, deployed on Weblogic in active/active configuration. Weblogic will be clustered. I am confused of steps of installation, please rectify me if following steps are wrong:
Step 1: install Weblogic on Node1, and configure clustering of Weblogic on other 3 nodes.
Setp 2: Install OBIEE on all 4 nodes. Complete installation, not specific products, using Advanced installation type. so that all componets are installed on all the nodes
Step 3: Configure clustering of OBIEE keeping Node1 as Master BI Server, Primary Cluster Controler, Primary scheduler.i am plaining for complete installation on all the nodes but while doing configuration in files NQSConfig.INI and NQClusterConfig.INI etc, i will do like
Node1 as primary node for cluster and scheduler and Presentation Services and Master BI Server
Node2 as secondary node for cluster and scheduler and Presentation Services and BI Server
Node3 as BI Server
Node4 as BI Server
I can install only one component BI Server on Node3 and Node4, but to keep my installation straight farward i am installing complete on all nodes. please suggest will it work. Or shall I proceed with complete install on Node1 and Node2, but custom install on Node3 and Node4
Regarding load balancing this has to be done by the cluster controler, please suggest if i am wrong. I have a separate WebServer which i need to configure. -
when i put MDB deployment jar file in JBOSS deploy folder i am getting
these exception.
11:10:46,765 WARN [JMSContainerInvoker] JMS provider failure detected:
javax.jms.JMSException: Error creating the dlq connection: XAConnectionFactory not bound
at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:171)
at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:237)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:164)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerCreate(JMSContainerInvoker.java:542)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:764)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$ExceptionListenerImpl.onException(JMSContainerInvoker.java:1267)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$1.run(JMSContainerInvoker.java:776)According to ur deployment descriptors u have to create QueueConnectionFactory and Queue .
Maybe you are looking for
-
Flat file name from Sender Side Dynamically into subject of Receiver Mail
Hi All, I am Using a file to Mail Scenario, My requirement is to get dynamically the file name from flat file of the Sender Side into Subject of Receiver Mail Adapter and attachment of file from the Sender Side. Can anyone help me out. Thank
-
Making ship character rotate slowly in circle
I am creating a player of a ship image in a tiled map. I am able to rotate it around. But to make it look realistic, i want the ship to move around slowly in circle like a real ship. I do not want the ship to rotate so fast like from up to down immed
-
There are some photos in my iPhone that will not delete off the camera roll after importing into iPhoto 09. It's a bug, and they have been stuck there for months now. The only method I believe to get rid of them is to manually delete each and every p
-
Reinstalling Acrobat 9.5
I have Acrobat 9.5, and I am getting the "Licensing not working" error. I have dowloaded the license recovery software, and run it several times, but it is still not working. It tells me to uninstall and reinstall the product, but I don't have the
-
PSE10 Organizer won't open. Had an online chat which didn't help
Hi all - very frustrated. I have been running PSE8 for some time now and have just purchased PSE10 to keep myself current. The install seems to go OK but when the welcome screen comes up and I choose organizer, the program just closes. No error messa