Issue of JMS WebLogic Automigration

Hello

Let me first tell you about my server information. Currently, we use weblogic 10.3.3.0. We have 1 admin server and manage the 2 Server (MS_1 and MS_2).

Currently, we are implementing the automatic migration of JMS on our server. To do this, we follow the steps below:

1. first cluster must be configured for automatic server migration:

Home-> Cluster-> configuration-> Migration-> Lock and Edit-> choose migratable machine for migration of automatic server-> Data Source for automatic Migration (choose data store for the migration of the automatic server)-> click Save

2. environment-> Migratable target-> click on the migratable target-> click Migration-> select-> forced candidate servers Select the migration service policy as 'Automatic failure recovery Services Migrate'-> register and activate changes

3. need to create a table called ACTIVE in the comic book and the ddl script is located under($WL_SERVER/wl_server_10.3/server/db/oracle/920) query name:leasing.ddl

4. create a no XA data source (while selecting the pilot, you must select the driver no XA) and under the operation, the data source tab uncheck overall transaction. Also the data source should point to the cluster.

5. the data source created in step 4 must be used in the JDBC persistence store and can also serve as a source of data of Cluster. The JDBC persistence store should be used in the JMS server and the JMS server should be used in the JMS queue.

After that, I deploy my Java application to read from the distributed queue JMS. and the Java service is the reading of the JMS queue.

But when I am restarting the server to manage the below error is thrown and the deployed java application state is making failure:

========================

< 29 April 2015 02:42:15 IST > < WARNING > < HTTP > < BEA-101162 > < org.springframework.web.context.ContextLoaderListener listener has not defined by user: org.springframework.beans.factory.BeanCreationException: error creating bean with name 'jmsResQueueUG' defined in ServletContext resource [/WEB-INF/spring-jms-config.xml]: calling the init method failed; nested exception is javax.naming.NameNotFoundException: unable to resolve 'MTNNDQ '. Solved "; another name 'MTNNDQ '.

org.springframework.beans.factory.BeanCreationException: error creating bean with name 'jmsResQueueUG' defined in ServletContext resource [/WEB-INF/spring-jms-config.xml]: calling the init method failed; nested exception is javax.naming.NameNotFoundException: unable to resolve 'MTNNDQ '. Solved "; another name 'MTNNDQ '.

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1113)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:431)

to org.springframework.beans.factory.support.AbstractBeanFactory$ 1.getObject(AbstractBeanFactory.java:254)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:144)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:251)

Truncated. check the log file full stacktrace

Caused by: javax.naming.NameNotFoundException: unable to resolve 'MTNNDQ '. Solved "; another name 'MTNNDQ '.

at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)

at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)

at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)

at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)

at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)

Truncated. check the log file full stacktrace

>

< 29 April 2015 02:42:16 IST > < error > < hats > < BEA-149265 > < error has occurred in the execution of the request of deployment with the ID ' 1430255500850 'to task 27'. Error: ' weblogic.application.ModuleException: '

weblogic.application.ModuleException:

at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1514)

at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:486)

at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247)

to weblogic.application.internal.flow.ModuleStateDriver$ 3.next(ModuleStateDriver.java:425)

at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)

Truncated. check the log file full stacktrace

Caused by: javax.naming.NameNotFoundException: unable to resolve 'MTNNDQ '. Solved "; another name 'MTNNDQ '.

at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)

at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)

at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)

at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)

at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)

Truncated. check the log file full stacktrace

>

====================================================

"MTNNDQ" is the name of the queue that is configured in the properties file. Where the bed spring-jms - config.xml.

"jmsResQueueUG" is the name of Spring bean.

Please note that during the server starts deployment the above question is coming, but after the successful restart when I deploy him point above does not.


Please suggest.


Thanks in advance.


Concerning

Yoan Kar

Hello

This problem is solved now. By changing the url of the server to management server to manage the url of the server and changing the connection factory developed to manage the server as below the problem is resolved.

JMS_FACTORY_TT = t3: / / osb1:7003, osb1:6005 / MTNNJMSCF

Concerning

Barnes

Tags: Fusion Middleware

Similar Questions

  • Head of work on JMS Weblogic

    I'm working on an environment that has servers JSM and queues configured. I read that Weblogic creates a job manager for each JMSServer I have with default values - read-only.

    However, when I start a managedServer, to 5 minutes of running, appears a message like this:

    < 17 December 2015 18:59:39 GMT - 02:00 > < critical > < WorkManager > < BEA-002911 > < weblogic.jms.SOAJMSServer_1.Limited WorkManager impossible to plan an application due to java.lang.RuntimeException: forced MaxThreads 'weblogic.jms.SOAJMSServer_1.Limited' queue for workManager "weblogic.jms.SOAJMSServer_1.Limited" has exceeded the maximum capacity of the ' 8192 elements ". County of restraint for son Max has the value 8

    java.lang.RuntimeException: forced MaxThreads 'weblogic.jms.SOAJMSServer_1.Limited' queue for workManager "weblogic.jms.SOAJMSServer_1.Limited" has exceeded the maximum capacity of the ' 8192 elements ". County of restraint for son Max has the value 8

    at weblogic.work.MaxThreadsConstraint.add(MaxThreadsConstraint.java:119)

    to weblogic.work.MaxThreadsConstraint$ 1.unbox(MaxThreadsConstraint.java:43)

    at weblogic.work.RequestManager.executeWorkFromPriorityQueue(RequestManager.java:630)

    at weblogic.work.RequestManager.addToCalendarQueue(RequestManager.java:318)

    at weblogic.work.RequestManager.executeIt(RequestManager.java:235)

    Truncated. check the log file full stacktrace


    Why it begins with 8192 and then, after a mistake criticism, replaces 8? Can anyone help me solve this problem?


    Thank you!!!

    As far as I remember... it should be the "Bug 14228070"

  • How to integrate JMS WebLogic?

    I want to use JMS for messaging but I do not know how to integrate it into my WebLogic Server.
    Is someone can you please tell me how I should integrate JMS in WebLogic?

    Java Message Service (JMS) is a standard API to access corporate e-mail systems.
    And WebLogic JMS is an enterprise-class messaging system tightly integrated with WebLogic Server platform. It fully supports the JMS specification.

    Please see the following links for more information on this and how to configure the jms resources:

    http://docs.Oracle.com/CD/E15051_01/WLS/docs103/JMS/Fund.html

    http://middlewaremagic.com/WebLogic/?page_id=1976

    Thank you
    Patrick

  • error of JMS weblogic 10.3

    # < 25 August 2009 11:39:07 AM MST > < WARNING > < EJB > < ddczxspsdb1 > < devM2 > < ExecuteThread: '2' for the queue: 'weblogic.kernel.System' > < < < > WLS Kernel > > < BEA-010061 > < The Message - Driven EJB: FileLoadBeanEJBImpl is unable to connect to the JMS destination: JMSTopic. The error was:
    [EJB:011010] The JMS destination with the JNDI name: JMSTopic was not found. Please ensure that the JNDI name in the weblogic-ejb - jar.xml is correct, and the JMS destination has been deployed. >
    # < 25 August 2009 11:39:17 AM MST > < WARNING > < EJB > < ddczxspsdb1 > < devM2 > < ExecuteThread: '12' to the queue: 'weblogic.kernel.Default' > < < < > WLS Kernel > > < BEA-010096 > < The Message - Driven EJB: AmgenFileLoadBeanEJBImpl is unable to connect to the JMS destination: JMSTopic. The connection failed after 2 attempts. The MDB will attempt to reconnect every 10 seconds. This log message repeats every 600 seconds until that condition clears. >
    # < 25 August 2009 11:39:17 AM MST > < WARNING > < EJB > < ddczxspsdb1 > < devM2 > < ExecuteThread: '12' to the queue: 'weblogic.kernel.Default' > < < < > WLS Kernel > > < BEA-010061 > < The Message - Driven EJB: AmgenFileLoadBeanEJBImpl is unable to connect to the JMS destination: JMSTopic. The error was:
    [EJB:011010] The JMS destination with the JNDI name: JMSTopic was not found. Please ensure that the JNDI name in the weblogic-ejb - jar.xml is correct, and the JMS destination has been deployed. >

    is the error due to the jms topic name.
    I gave the name of jms as jmsDevTopic topic in the administration console and we test the jms connectivity from the client.


    In addition, under the heading JMS-> monitor-> durable subscribers, I see the following message



    Can't find the execution of this JMS destination information.

    There are many reasons why the system cannot find the destination runtime. Here are some common causes:

    * This destination is not targeted to a JMS server
    * This destination caters to a JMS server, but the Server JMS is not targeted to a server or a migratable target
    * the JMS destination module is not targeted to a server or a cluster
    * all target entities above are not enabled


    but I targeted factories connection and subject to the JMS server with a deployment under and targeted jms server with the managed server.


    can you help me with this


    Thank you

    In the stack trace that is provided, the first exception seems thrown by the application com.amgen code and has nothing directly to do with WebLogic. Specifically, the code has been impossible to find a properties file:

    Caused by: com.amgen.util.config.ConfigException: cannot load jmsdevTopic.properties file property
    to com.amgen.util.config.PropertyConfig. (PropertyConfig.java:32)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.amgen.util.config.ConfigManager.getConfig(ConfigManager.java:43)
    at com.amgen.util.config.ConfigManager.getConfig(ConfigManager.java:24)
    at com.amgen.jms.ServiceLocator.getTopicConnectionFactory(ServiceLocator.java:61)

  • JMS WebLogic and connection pooling

    Y at - it an advantage in trying to weblogic pool connections or the factory connections automatically does for you?
    Thanks in advance.

    There is a checkbox to explicitly mark issues such as "answered".

  • Issue from the Weblogic for ATG Server

    Hello

    My goal is to deploy an EAR (generated for jboss) ATG Weblogic 10.3.6 and using Oracle to connect my DB

    I created the necessary data sources and make the necessary changes in JTDataSource thus, even after that as I get the error message during the installation of the EAR:

    JTDataSource.properties:

    $class = atg.nucleus.JNDIReference

    JNDIName = java: comp/env/jdbc/ATGProductionDS

    This is the error I get:

    ErrorMar 17 Nov 14:28:11 IST 20151447750691135/ ATG/Dynamo/service/JDBC/JTDataSource---javax.naming.NameNotFoundException: while trying to get jdbc/ATGProductionDS in/app/webapp/dyn/1362370711. ; rest the name "jdbc/ATGProductionDS.

    And I created "ATGProductionDS" datasource with JNDI name as "jdbc/ATGProductionDS.

    Anyone could solve my problem please?

    Hello

    Try using like this:

    /atg/dynamo/service/jdbc / JTDataSource.properties

    dataSource = / atg/dynamo/service/jdbc/DirectJTDataSource

    /ATG/Dynamo/service/JDBC/DirectJTDataSource.properties

    JNDIName = ATGProductionDS

    $class = atg.nucleus.JNDIReference

    I always use like this and working properly.

    It will be useful.

    Good bye.

  • Issue of JMS request/response model

    Hi all

    I'm a JMS request/response using q temporary queue model, as I understand it.

    I want to know is if it is possible to use a single queue of the application and the response without 2 subscribers on the queue of diversion of each and other messages.

    For example:
    -client A sends a message to the queue of Q.requestReply with text ("query")
    B reads the message off the coast of the Q.requestReply queue
    B captures MessageId
    B sets the CorrelationId MessageId = replyMessage
    B sends replyMessage to queue Q.requestReply with the text ("the answer")
    -A reads the response message and prints them out 'the response '.

    Is this possible without B pick up the message that he has responded to A?
    I'm trying this through java, and if A is down, B continue to read the message you post in response to A q.

    Hope it makes sense
    Concerning
    Ruan

    without filters, any Subscriber could get any message. with filters, you can choose who receives this message. I don't know what is your exact usage scenario, but since your original post, I think maybe you have a pool of workers who listen on a queue, remove a message, do the work, then the response on the same queue. you could implement this scenario by using a property of message custom as "isReply".

    -all 'workers' listen queue with a filter "isReply is false.
    -client A makes a request in the queue, then listen to the queue with the filter "correlationId = & isReply == true.
    -When a worker receives a request, it does the job, then hands the answer on the queue, by setting isReply to true and the correlationId for the messageId property request

  • Issue of JMS Dequeue - OSB

    Hello

    We have created a JMS queue in WLS 10.3.0 and OSB (10.3.1) uses the proxy service - JMS transport to dequeue messages.

    Queue JMS WLS-> Proxy-> Business Service (JCA Db adapter) OSB to insert data in a table

    IF error in db-> error to invoke OSB and write to a file manager

    Case - success
    --------------------

    The messages are deleted from the queue

    Case - failure
    -----------------

    The messages are not deleted from the queue. Error handler is invoked in OSB and messages are written to a file.


    This creates a problem since the attempts of the OSB and the number of files is created. We tried to fix the settings of retry in OSB, to no avail.

    Please make a contribution, it is a little bit of urgency.

    Kind regards
    AP

    Published by: ARPL on October 15, 2009 03:41

    If I understand correctly your problem right, you want to deal with errors on your own and you don't want OSB to try again for messages that have been processed with the error? Ok?

    Your JMS proxy is transactional. When it detects errors, JMS transaction is restored, your message remains in the JMS queue and will be dealt with later again. If you want to avoid a repeated treatment of the same message, then simply adjust your proxy error handler. You can do this by using the resume action or a response at the end of your error handler. This will ensure that messages are processed successfully and the transaction will commit.

    http://download.Oracle.com/docs/CD/E13159_01/OSB/docs10gr3/Userguide/modelingmessageflow.html#wp1065361

  • Configuring JMS Adpter for remote weblogic JMS

    Hello
    We have SOA and OSB installed on separate computers.
    We use SOA 11.1.1.6.
    I have a requirement to send a JMS weblogic installation message where SOA is installed for weblogic installation where the OSB is installed.
    I understand that I must create a foreign JNDI provider where I need to create the link with the SMC OSB that I created on weblogic SOA.

    Now, when I am configuring the JMS adapterit asks me to select the connection to the server app jdev which is the installation of SOA connection it shows all queues and topics
    present on the installation of weblogic SOA but I need to specify the name JNDI Local and remote JNDI name somewhere so the message should go the
    OSB JMS.
    Can you get it someone please let me know how to configure the adapter in this scenario?
    Any help/pointers in this regard are appreciated.

    With respect,
    Hard

    Not very clear on your condition. Here's what I understand:
    1. you have a JMS queue in the field of the SOA Suite and another line in the area of the OSB
    2. you want to send messages to the queue JMS SOA field to the field to OSB JMS queue

    First of all don't think that you need a separate queue in the field of the OSB, you can have your proxy service point to the queue JMS in SOA Suite. You can simply use the domain SOA listening address and JNDI names in the service OSB JMS as URI a Proxy endpoint it will read messages directly from field JMS queue to SOA.
    However, if you have messages to copy first to the local OSB JMS queue, I would suggest creating an agent FAS to messages before directly from queue JMS SOA to the queue of the JMS OSB, in this way you will not have to build a composite to forward the message.
    Finally, if you want to forward the messages from the queue JMS SOA to the queue JMS OSB via a composite then you need build two adapters JMS in your composite application.
    JMS adapter to read the messages in the queue JMS SOA domain. (Use a server app connection in jDev which points towards SOA domain admin server and provide the queue JMS JNDI names created in the field of SOA).
    Other JMS adapter to write messages of OSB field JMS queue. (Create another connection of server app in jDev which points to OSB domain admin server and provide the names of the JNDI queue created in the field of the OSB).
    Then you can just put a mediator to take first map JMS messages and send to the second map of JMS

  • Too many connections open for integration with QA Oracle WebLogic JMS

    Is there a document explaining the number of database connections required by the factories of connection and/or the queue? I configured a foreign server with destinations and connection factories to integrate with AQ JMS WebLogic. I have 16 destinations (14 lines and 2 subjects) and two plants (a XAQueueConnectionFactory and a XATopicConnectionFactory) connection configured. I have also 16 multilateral development banks, one for each destination, configured with max-beans-in free-pool value 1. Everything works fine. However, when the application server is started, I could see that there are 68 open database connections. This seems too high. When using OC4J we had max-connections set to 30 and it was working fine. Why are so many open connections?

    Battery stuck trace, the particular version of the WebLogic you use, uses the receiver of messages JMS QA for voting message and sets an ExceptionListener on JMS connection. (I think that your MDB is a non transactional MDB). The JMS AQ message sink uses a db of the query message connection and the implementation of the QA JMS ExceptionListener uses internally a db periodically ping the database connection. If your MDB uses two connections in your configuration.

  • WebLogic 10.3 not suporting for MDB to connect to remote server Weblogic JMS

    Hello

    I have a problem with MDB deployed on Weblogic 10.3.It's MDB simple that communicates with the Server JMS weblogic remote. I'm the exception below. could someone help how to solve this problem.

    < 14 April 2009 11:28:52 AM PDT > < WARNING > < EJB > < BEA-010061 > < The Message - Driven EJB: ReceiverFromDocumentum can not con
    NECT to the JMS destination: FMAContractOutboundQueue. The error was:
    [EJB:011013] The Message-Driven EJB attempted to connect to the JNDI name JMS connection factory: FMAConnectionFacto
    Ry. However, the object with the JNDI name: FMAConnectionFactory is not a JMS connection factory. NestedException message is
    : weblogic.jms.client.JMSConnectionFactory cannot be cast to javax.jms.XAConnectionFactory >

    -Anthony

    For example, using console on the remote WLS WLS: http://e-docs.bea.com/wls/docs103/ConsoleHelp/taskhelp/jms_modules/connection_factories/ConfigureTransactions.html

  • JMS Messages, refusing to participate in JTA transactions

    I worked on this issue for several days, and I can't find a path.

    I have a situation where I have to write in the database and also to send a JMS message. I want both to work, or nothing works, so it's a simple application of JTA, so I think.

    The used JMS connection factory is located to participate in XA transactions (I checked that 10 times).

    I originally had a UserTransaction started and committed around these statements, but since that doesn't seem to work, I put all the code in an EJB with transaction required.

    Whatever it is, it does not the way I expected.

    I have a breakpoint in the MDB which receives the message, but also a breakpoint on the Publisher code, and the code immediately after him. I find whenever as soon as I didn't have the JMS publish, the breakpoint in stops MDB then, indicating that the JMS message has been sent, even if the transaction publishers is certainly not over - finally the debugger will return back to the line after the publication.

    I am sure that we have made repeatedly in the past, and it worked as I expect with transaction code works.

    Someone has ideas about obvious things to check to determine why the JMS message is outside the transaction? Or not so obvious...

    Thanks in advance,
    Ken clark

    Hi Ken,

    You reason - the use case is common, but there are has some pitfalls new users sometimes face.

    The results of tracing of breakpoint you are expected. Message from a sender goes to the JMS server while sending message is called. If the message is involved in the transaction, it is always sent, but it became visible to consumers until the transaction is subsequently committed.

    To ensure that a sent message is involved in a transaction:

    1. ensure that the connection factory is «activé XA»

    2. ensure that there is a transaction on the thread. For example: System.out.println ("MY TX" + weblogic.transaction.TransactionHelper.getTransactionHelper () .getTransaction ());

    3 - ensure that your connection.createSession () invoking past 'false' for the first parameter - not true! If true and that you do not use a resource ref, the session would then become a "transactional" session, and JMS messages will take part in an independent local transaction rather than the overall XA transaction

    4. If not using a WebLogic JMS to send, then you must make sure that WebLogic automatically entered the foreign seller send call in the WL TX. All that is needed is to use a standard JEE 'refers to a resource"to get him CF. rather than directly raising the CF foreign in the foreign JNDI provider. This enables WebLogic detect and wrap calls foreign seller of the application, which in turn allows the automatic registration. See the JMS WebLogic Interop FAQ for more information.

    4 b - If you use AQ - JMS to send, more work is required, since QA - JMS are quite unique among the JMS implementations. WL 10.3.1 and later provides features to simplify this work.

    See for a related FAQ [integrating remote JMS providers | http://download.oracle.com/docs/cd/E15523_01/web.1111/e13727/interop.htm#JMSPG553], and for resources info Ref see [support strengthened using WebLogic JMS with EJB and servlet | http://download.oracle.com/docs/cd/E15523_01/web.1111/e13727/j2ee.htm#g1329180] (especially the 9-5 example).

    Hope this helps,

    Tom

  • E.M.P. Installation stuck at installing weblogic

    Hello

    We're reinstall on the computer after the complete uninstall.  By the way same OBIEE installation has also been glued on the same way on the same server.

    OBIEE 11.1.1.7.1 Installation stuck at 97%

    We have workaround for this problem on SR. He has been to install weblogic separately, then install OBIEE.

    Concerning

    G1

    11.1.2.4 product version

    Windows Server 2008 64 bit

    Screenshot

    Journal

    2015-12-23 22:32:04, 498 INFO [readSilentXML] com.bea.plateng.wizard.installer.common.parsers.TemplateParser - Silent xml file successfully treated...

    2015-12-23 22:32:06, 307 WARN [home] com.bea.cie.gpr.internal.model.JvmTargetManagerImpl - value of the property for win32_jdk160_29b11.zip not found...

    2015-12-23 22:32:06, 307 WARN [home] com.bea.cie.gpr.internal.model.JvmTargetManagerImpl - value of the windows_ia32_jrockit_160_29_D1.2.0 property - 10_jdk.zip not found...

    2015-12-23 22:32:06, 479 WARN [home] com.bea.cie.gpr.internal.model.JvmTargetManagerImpl - value of the property for win32_jdk160_29b11.zip not found...

    2015-12-23 22:32:06, 479 WARN [home] com.bea.cie.gpr.internal.model.JvmTargetManagerImpl - value of the windows_ia32_jrockit_160_29_D1.2.0 property - 10_jdk.zip not found...

    2015-12-23 22:32:06,495 [House] WARN com.bea.plateng.wizard.installer.silent.tasks.SilentBEAHomeTask - D:\Middleware\EPMSystem11R1\... Directory is not empty. Proceed with the installation?

    Hello

    Found this remark 2099095.1 published recently.

    Cause

    The installation process attempts to access the Oracle lb site - ccr.oracle.com.  The current security settings of firewall allow connection to the site, but they are blocking content being returned by Oracle.

    To verify that this is the issue, while the WebLogic installation is underway:

    1. open a command prompt window.
    2. type: netstat
    3 check the flow rate for a connection to lb - ccr.oracle.com, listed in STANDBY mode

    Solution

    In the configuration of your firewall, enable "Download content" for lb - ccr.oracle.com.  Or completely block the lb - ccr.oracle.com.

    Although I am confronted with exactly same error on newspapers, this side is not in standby mode. Always wanted to check how can I block this link?

    Concerning

    G1

  • Golden Gate for JMS

    Hello

    We strive for GG for JMS

    According to our understanding, there are 2 ways in which it can be configured:
    1. capture the JMS msg and deliver to the DB
    2 DB capture and deliver JMS

    Thus, we strive for a deliver 2nd at JMS

    Extract from the process of mgr GG
    extract JME911

    GGS@bidb username, password ggs12345
    discardfile E:\GoldenGate11gMediaPack\V26071-01\dirrpt\JME911.dsc, serving

    rmthost 10.180.182.77, mgrport 7817
    rmttrail E:\GoldenGate11gMediaPack\JMS\V22254-01\ggs_Windows_x86_Generic_32bit_v11_1_1_0_0_078\dirdat\JM, MB 100

    table GGS. VIKSTK;


    Excerpt on GG for JMS
    extract JE911

    sourcedefs E:\GoldenGate11gMediaPack\JMS\V22254-01\ggs_Windows_x86_Generic_32bit_v11_1_1_0_0_078\dirdef\vikstkFF.def
    SETENV (GGS_USEREXIT_CONF = "E:\GoldenGate11gMediaPack\JMS\V22254-01\sample-dirprm\javaue.properties")
    SETENV (GGS_JAVAUSEREXIT_CONF = "E:\GoldenGate11gMediaPack\JMS\V22254-01\sample-dirprm\javaue.propertiess")
    CUSEREXIT E:\GoldenGate11gMediaPack\JMS\V22254-01\ggjava_ue.dll CUSEREXIT INCLUDEUPDATEBEFORES PASSTHRU


    TABLE ggs.vikstk.


    but from extract to JMS side its giving following error

    *************************************************************************
    Error occurred in javawriter.c [269]: error occurred (except Java): loading Jav
    a class:
    java.lang.NoClassDefFoundError: com/goldengate/atg/datasource/UserExitMain

    Error occurred in javawriter.c [298]: error loading class: com/goldengat"
    e, atg, datasource, UserExitMain '

    in fact, he has no UserExitMain file in the place where he is looking.
    I expect that this file is provided in the zip, but this is not


    Pointers


    Thank you
    Vikas

    Vikas Panwar wrote:
    We strive for GG for JMS
    According to our understanding, there are 2 ways in which it can be configured:
    1. capture the JMS msg and deliver to the DB
    2 DB capture and deliver JMS

    Yes; or, more generally,.
    (1) GG can "capture" (consume) JMS messages and create GG tracks... and
    (2) GG can use existing trails and deliver (send messages) to JMS

    That also means you could do: database-> trail-> JMS-> path-> database. Which would give you a publish/subscribe architecture w / GG, rather than the many-to-many replication.

    ("Change data capture" terminology database is a bit strange when it comes to e-mail, but you get the idea). For historical or technical reasons, the JMS "capture" may also be referred to as the JMS VAM, and "delivery" of JMS is also going to be sometimes referred to as the JMS (Java) user exit (or java-EU).

    OK, with the terminology of the road...

    Extract from the process of mgr GG + (original) +.
    extract JME911
    GGS@bidb username, password ggs12345
    discardfile E:\GoldenGate11gMediaPack\V26071-01\dirrpt\JME911.dsc, serving
    rmthost 10.180.182.77, mgrport 7817
    rmttrail E:\GoldenGate11gMediaPack\JMS\V22254-01\ggs_Windows_x86_Generic_32bit_v11_1_1_0_0_078\dirdat\JM, MB 100
    table GGS. VIKSTK;

    Is very good, although, technically, the user exit before the next version 11.2 implementations do not handle the trails in "Add mode".

    From GG v10.x, default track format changed to "overtype mode" to "Add mode". User-output are automatically garbage in the track when the tracks are in "Add mode"; the tracks should rather be in mode "crush." (This "mode" is a term of full-audit of the recovery, which means that if there is a upstream "abend", then after that the restart process, target track data are added, rather than overwrite the record current, incomplete, potentially damaged.)

    In other words, in more simple terms: technically, trails should be in 'overtype mode. You can do this either by specifying "overtype mode" or saying the trails are "format version 9.5".» Actually, it does exactly the same thing. Note that this "mode" is not a problem that there is a "abend" upstream. And the 'problem' is not really predictable; Basically, from the point of view of the output of the user, there are duplicate in the trail that is simply processed data. But enough about that. Moving...

    Also, on the top of my head, I don't know that there is never a reason for a file to "throw" in "extract."

    Also... What is with complete & backslashes paths? : - )

    So this is what you have technically expected to have:

    Extract from the process of mgr GG + (updated) +.
    extract JME911
    GGS@bidb username, password ggs12345

    OverwriteMode RecoveryOptions
    rmthost 10.180.182.77, mgrport 7817
    megabytes of dirdat/JM, rmttrail 100

    table GGS. VIKSTK;

    And as for your pump running the JMS service:

    Excerpt on GG for JMS + (original) +.
    extract JE911
    sourcedefs E:\GoldenGate11gMediaPack\JMS\V22254-01\ggs_Windows_x86_Generic_32bit_v11_1_1_0_0_078\dirdef\vikstkFF.def
    SETENV (GGS_USEREXIT_CONF = "E:\GoldenGate11gMediaPack\JMS\V22254-01\sample-dirprm\javaue.properties")
    SETENV (GGS_JAVAUSEREXIT_CONF = "E:\GoldenGate11gMediaPack\JMS\V22254-01\sample-dirprm\javaue.propertiess")
    CUSEREXIT E:\GoldenGate11gMediaPack\JMS\V22254-01\ggjava_ue.dll CUSEREXIT INCLUDEUPDATEBEFORES PASSTHRU
    TABLE ggs.vikstk.

    As "best practices", follow these steps:


    1. Copy your *.properties in dirprm. Keep all the config in dirprm. It makes things easier to bear.
    2. using ' / ' instead of '-' becomes much more important here. Some of these paths are read by Java, and some are read by native code (C/C++) depending on the platform. Native code on Windows is ok read a path like 'C:\path\to\foo', but if you pass it a path to the Java application, then you must use either: (1) "C:\\path\\to\\foo" or 2 "C:/path/to/foo." The same is true for relative paths; the advantage of relative paths is you don't have to deal with the "C:" or "E:" prefixes, and prm and property files are independent of the platform.
    3. You can eventually put all the "Properties" in one file, while defining GGS_USEREXIT_CONF and leaving GGS_JAVAUSEREXIT_CONF unset. The only reason for which you want to define the two is if you have files of separation of property, several pumps and he wants to avoid the duplication of your files.
    4. your pump is running the JMS user-exit must spend 100% of the output of the user data. Technically, this is necessary in particular situations, but it is best to always do (must be careful about the filtering as part of a whole operation). You can write filters in Java for more refined filtering.

    The problem here is:


    1. the path of the property for GGS_JAVAUSEREXIT_CONF file is read from Java (or, if not defined, GGS_USEREXIT_CONF is read from Java), which means that you must use "/" and not "------" as the path separator. (Just never use "\", and're you good to go in the configuration of your GG).
    2. in the javaue.properties file, check that classpath is set correctly; It should include "dirprm", ggjava.jar and your implementation of JMS 3rd party-online javawriter.bootoptions=-Djava.class.path=dirprm:ggjava/ggjava.jar:lib/activemq-all.jar... etc... + (* NOTE! * use colon ":" as a separator in path on Unix and semicolon ";" on Windows!) +
    3. (maybe) make sure that the JAVA virtual machine is in the path (windows) or LD_LIBRARY_PATH (unix) before the Bishop. Under windows, this is the path to jvm.dll, unix/linux, this is the path to libjvm.so (and dependencies, if necessary)

    This error (means that the ggjava.jar is not found below). (The ggjava.jar take care of all the other jars in resources/lib/*.jar of loading). This should be in {GG_HOME}/ggjava/ggjava.jar. In other words, the "ggjava" directory should be in the same directory as 'extract '. In addition, the "ggjava_ue.dll" (or libggjava_ue.so) are GG_HOME (the same as dir "extract").

    Error occurred in javawriter.c [269]: error occurred (except Java): loading Java class: java.lang.NoClassDefFoundError: com/goldengate/atg/datasource/UserExitMain

    in fact, he has no UserExitMain file in the place where he is looking.
    I expect that this file is provided in the zip, but this is not

    The UserExitMain is inside a pot inside ggjava/resources/lib/*.jar. By adding ggjava/ggjava.jar to the classpath variable, each GG jar is automatically added to the classpath. (This way, "com, goldengate, atg, datasource" is inside a jar).

    Pointers

    See above...

    And here's a complete example:

    -Folder: dirprm/javaue.prm
    --(1) before starting the mgr, to ensure that the JAVA virtual machine is in the path of the library
    -sh > echo $LD_LIBRARY_PATH # unix
    -cmd > echo windows of # % PATH %
    -ggsci > start mgr
    --
    --(2) add a snippet of data pump, reading a path to load/run the output of the user:
    -ggsci > add javaue extract, extTrailSource dirdat/tc
    -ggsci > javaue info


    -ggsci > start javaue

    Extract javaue
    SourceDefs dirdef/tc.def
    SetEnv (GGS_USEREXIT_CONF = "dirprm/javaue.properties")

    -debug, is printed in the report file
    GetEnv (JAVA_HOME)
    GetEnv (PATH)
    GetEnv (LD_LIBRARY_PATH)

    -native lib load the application Java (ggjava/ggjava.jar).
    CUserExit ggjava_ue.dll CUSEREXIT PassThru IncludeUpdateBefores

    GetUpdateBefores

    -pass all user-exit
    TABLE myschema.*.
    TABLE ggs.*.
    TABLE ggs2.*.

    And,

    # javaue.properties
    GG.handlerlist = my_jms

    Java.naming.Factory.initial = org. Apache.ActiveMQ.JNDI.ActiveMQInitialContextFactory
    Java.naming.Provider.URL = tcp://localhost: 61616

    GG. Handler.my_jms.type = JMS
    GG. Handler.my_jms.destination=dynamicQueues/testQueue123
    GG. Handler.my_jms. ConnectionFactory ConnectionFactory =
    GG. Handler.my_jms.format = XML

    # config native library #.
    GoldenGate.UserExit.nochkpt = true
    GoldenGate.UserExit.Timestamp = UTC

    GoldenGate.log.LogName = cuserexit
    GoldenGate.log.Level = info
    GoldenGate.log.ToFile = true

    GoldenGate.UserExit.Writers = javawriter
    #javawriter.stats.time = 3600
    #javawriter.stats.numrecs = 10000
    javawriter.stats.Full = true
    javawriter.stats.display = true
    # use ': ' for the path Unix/Linux and ';' separator on Windows
    javawriter.bootoptions=-Xmx32m-Xms32m-Djava.class.path=dirprm;ggjava/ggjava.jar;lib/ActiveMQ-all.jar-Dlog4j.Configuration=log4j.properties

    For more information, see the following tutorials:
    * GG w JMS / WebLogic: https://apex.oracle.com/pls/apex/f?p=44785:24:3063410885617911:NO:24:P24_CONTENT_ID, P24_PREV_PAGE:5716, 2
    * GG JMS w / ActiveMQ: https://apex.oracle.com/pls/apex/f?p=44785:24:3465206725960444:NO:24:P24_CONTENT_ID, P24_PREV_PAGE:5694, 2

    It will be useful,
    -Mike

  • JMS configuration MQ

    Hello

    I configured a foreign server between jms weblogic and MQ

    I note the following exceptions:


    < 23 February 2010 14:44:40 EST > < WARNING > < JMSPool > < BEA-169808 > < there was an error during the initial connection to the resource named JMS jms/WLReplyQCF of the EJB "MsgBean" in the "MDBEAR" application The server will try connecting later. The error was javax.jms.JMSException: [JMSPool:169803] JNDI lookup of the jms/WLReplyQCF JMS connection factory failed: javax.naming.NameNotFoundException: unable to resolve 'MQReceiverQCF '. Solved "; name remaining 'MQReceiverQCF' >
    < 23 February 2010 2:48:40 pm > < WARNING > < JMSPool > < BEA-169808 > < there was an error during the initial connection to the resource named JMS jms/WLReplyQCF of the EJB "MsgBean" in the "MDBEAR" application The server will try connecting later. The error was javax.jms.JMSException: [JMSPool:169803] JNDI lookup of the jms/WLReplyQCF JMS connection factory failed: javax.naming.NameNotFoundException: unable to resolve 'MQReceiverQCF '. Solved "; name remaining 'MQReceiverQCF' >

    The MsgBean don't look upward to "MQReceiverQCF", he rises to 'jms/WLReplyQCF.
    The error is misleading, it says failed to search the jms/WLReplyQCF JMS connection factory JNDI:
    But on the next line, he says impossible to resolve 'MQReceiverQCF '.

    This is confusing, since we have two configurations on this instance, the "MQReceiverQCF" and "jms/WLReplyQCF.
    Can we get rid of the other configuration, MQReceiverQCF, for now? or can we work on a new instance of separate 10.3 and have just this sample application deployed on this instance?

    Thanks in advance :)

    When you set the connection factory in the binding file set the following parameters:
    (Client) transport channel of port hostname () () ()

    Published by: atheek1 on March 9, 2010 12:15

Maybe you are looking for