JMS Utilities

Hello,
We are using the JMS adapter along with MQ Series and the content convesion bean module on XI 3.0 (sp23). This works fine most of the time.
But when a problem occurs with a message stuck at the JMS Adapter layer, it is impossible with RWB  to see the source message in its unparsed state. After some retries a message will fail and disappear presumably into a JMS dead letter queue. This is bad!
We would like to know the best tools to inspect, troubleshoot, and resubmit messages that can get caught up in JMS adapter level.
Some things on our list but we aren't sure about: JMS Telnet tool (not enough features?), SAP Management Console (won't work with XI3?), Hermes, JMS API to write our own, etc.
Your advice is greatly appreciated!
Aaron

Thank you for suggesting MQ Explorer and MQ J Explorer, we'll load it up and try it.
I'm really surprised there is not better functionality as part of SAP to do this but maybe that is really the case and we have to go 3rd party.
Any other suggestions or experiences? If your shop has a similar MQ / JMS adapter configuration, what is your process to monitor and troubleshoot message problems at the JMS layer? I plan to update a wiki with the information.
Best regards,
Aaron

Similar Messages

  • RIB Tools (RDMT) Instalation error

    Hi ,
    I am trying to Install Rib Tools :RDMT , but getting exception on jmx_ribstart.txt
    Please help me regarding the exception.
    java.lang.RuntimeException: No OC4J process up for AS instance identified by domain: opmn-rib-rms-oc4j-instance+oc4j-sim.versantindia.com-6003-default
         at oracle.oc4j.admin.jmx.shared.Oc4jOpmnRmiDomain.getPort(Oc4jOpmnRmiDomain.java:344)
         at oracle.oc4j.admin.jmx.shared.Oc4jRmiDomain.getRmiPort(Oc4jRmiDomain.java:119)
         at oracle.oc4j.admin.jmx.client.CoreRemoteMBeanServer.fetchMBeanServerEjbRemote(CoreRemoteMBeanServer.java:433)
         at oracle.oc4j.admin.jmx.client.CoreRemoteMBeanServer.<init>(CoreRemoteMBeanServer.java:161)
         at oracle.oc4j.admin.jmx.client.RemoteMBeanServer.<init>(RemoteMBeanServer.java:128)
         at oracle.oc4j.admin.jmx.client.RemoteMBeanServer.getMBeanServer(RemoteMBeanServer.java:158)
         at oracle.oc4j.admin.jmx.client.ClientMBeanServerProxyFactory.getMBeanServer(ClientMBeanServerProxyFactory.java:68)
         at oracle.oc4j.admin.jmx.remote.rmi.RMIJMXConnectorImpl.getConnector(RMIJMXConnectorImpl.java:190)
         at oracle.oc4j.admin.jmx.remote.JMXConnectorImpl.connect(JMXConnectorImpl.java:400)
         at oracle.oc4j.admin.jmx.remote.JMXConnectorImpl.connect(JMXConnectorImpl.java:352)
         at com.oracle.rib.jmx.client.cmdline.cmds.ConnectCommand.execute(ConnectCommand.java:81)
         at com.oracle.rib.jmx.client.cmdline.JmxClientMain.execute(JmxClientMain.java:149)
         at com.oracle.rib.jmx.client.cmdline.JmxClientMain.main(JmxClientMain.java:78)
         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:592)
         at com.oracle.rib.rdmt.util.RdmtMainBootstrap.main(RdmtMainBootstrap.java:58)
    Thanks & regards
    Ripan Paul.

    Hi Erik Ykema.,
    when Run rdmtmenu and select option 7 and select option 1 - Execute rib_health , Jmx error is getting
    And when select option 13 - local OC4J status (opmn), error getting "opmnctl: command not found".
    Here is the Details of RDMT Tools:
    RIB Diagnostic & Monitoring Tools
    Main Menu
    This Host: sim.versantindia.com
    RDMTLOGS : /home/oracle/rib-workspace/Rib1300ForAll13xxApps/rib-home/tools-home/rdmt/rdmt/RDMTLOGS
    RMS DB : rms13dev@rms13
    SIM DB : simuser@sim
    TAFR DB : tafruser@sim
    JMS Type : ojms
    JMS HOST : sim
    JMS Port : 1522
    JMX CFG : jmx1.conf
    OC4J : sim.versantindia.com:6003
    Instance : rib-rms-oc4j-instance
    RIB APP : rib-rms
    1 - OC4J/JMX Utilities Menu 7 - RIB Health Menu 13 - RIB Admin menu
    2 - JMS Utilities Menu 8 - Hospital Scan Menu 14 - Archive RDMTLOGS
    3 - PUB/SUB Msg Menu 9 - JMS Topic Scan 15 - View history log
    4 - Switch OC4J/JMX Config 10 - JMS Switch 16 - RIB Health scan
    5 - Scan RIB Logs 11 - JMS Config
    6 - Scan RIB Logs - delta 12 - View Scan Log Exceptions
    99 - Logout
    Selection: 7
    RIB Diagnostic & Monitoring Tools
    RIB Health SubMenu
    This Host: sim.versantindia.com
    RDMTLOGS : /home/oracle/rib-workspace/Rib1300ForAll13xxApps/rib-home/tools-home/rdmt/rdmt/RDMTLOGS
    RMS DB : rms13dev@rms13
    SIM DB : simuser@sim
    TAFR DB : tafruser@sim
    JMS Type : ojms
    JMS HOST : sim
    JMS Port : 1522
    JMX CFG : jmx1.conf
    OC4J : sim.versantindia.com:6003
    Instance : rib-rms-oc4j-instance
    User : oc4jadmin
    RIB APP : rib-rms
    Selections:
    1 - Execute rib_health 6 - Scan App Logs 11 - RIB Config Report
    2 - View lastrun ribhealth 7 - Scan App Logs - delta 12 - View lastrun config report
    3 - Switch OC4J/JMX Config 8 - RIB Timings Utility 13 - local OC4J status (opmn)
    4 - EJB Ping (RIB) 9 - Scan MFQTables 14 - ping db hosts
    5 - EJB Ping (APP) 10 - Scan Upload Tables 15 - system scan
    99 - Main menu
    Selection: 1
    Start RIB Health Scan sim.versantindia.com...10Feb24-0919
    Logging to /home/oracle/rib-workspace/Rib1300ForAll13xxApps/rib-home/tools-home/rdmt/rdmt/RDMTLOGS/tmp/rh-10Feb24-0919
    Performing checks using JMX configurations...
    Detected 1 RIB OC4J Instance(s) configured.
    Scanning configurations detected...
    ** Testing 1 - sim.versantindia.com:rib-rms-oc4j-instance:rib-rms...
    JMX request for Instance status...
    **JMX ERROR - see log file: /home/oracle/rib-workspace/Rib1300ForAll13xxApps/rib-home/tools-home/rdmt/rdmt/RDMTLOGS/tmp/jmx_ribstat.txt.**
    Messages on topic using JMS configuration...
    AQ JMS Topic Scan - Topics with Messages...
    Scanning for Topics with Subscribers...
    Found Topics with Subscribers: 0
    Scanning for Topics with message counts...
    -- Checking Threshold = 1000
    MSGCNT TOPIC SUBSCRIBER
    =============================================================================
    Performing checks using Hospital configurations...
    Performing checks using rms Hospital configuration...
    Database User : rms13dev
    Rib_message table row count : 6
    Performing checks using tafr Hospital configuration...
    Database User : tafruser
    Rib_message table row count : 0
    Performing checks using sim Hospital configuration...
    Database User : simuser
    Rib_message table row count : 1
    Load Average - localhost
    09:21:23 up 21 days, 20:31, 9 users, load average: 15.64, 8.35, 5.85
    vmstat - localhost
    procs -----------memory---------- ---swap-- -----io---- system ----cpu----
    r b swpd free buff cache si so bi bo in cs us sy id wa
    1 1 2852776 124480 2304 310180 224 180 279 249 8 8 16 21 45 18
    1 1 2852776 123200 2312 310164 1368 0 1368 212 1266 4390 16 54 1 29
    1 1 2852776 121536 2312 310308 1284 0 1284 0 1324 4484 34 45 3 18
    1 1 2852776 120576 2320 310308 876 0 876 468 1233 4204 17 52 6 25
    3 3 2852776 113768 2320 310440 1568 0 1568 96 1384 3967 40 44 3 12
    mpstat - localhost
    Linux 2.6.9-55.0.0.0.2.ELsmp (sim.versantindia.com) 02/24/2010
    09:21:37 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s
    09:21:38 AM all 16.06 0.00 43.52 7.77 0.52 2.07 30.05 1081.00
    09:21:39 AM all 13.93 0.00 43.28 0.00 0.00 0.50 42.29 1022.00
    09:21:40 AM all 28.14 0.00 41.71 0.00 0.00 0.50 29.65 1128.00
    09:21:41 AM all 16.75 0.00 46.60 0.00 0.00 2.09 34.55 1126.00
    09:21:42 AM all 34.92 0.00 43.92 5.29 0.53 4.23 11.11 1443.18
    Average: all 21.89 0.00 43.78 2.57 0.21 1.85 29.70 1153.07
    Job Finished
    AND WHEN SELECT RIB HEALTH SUBMENU
    when SELECT option 13 - local OC4J status (opmn) , found "opmnctl: command not found"
    Here is details :
    RIB Diagnostic & Monitoring Tools
    RIB Health SubMenu
    This Host: sim.versantindia.com
    RDMTLOGS : /home/oracle/rib-workspace/Rib1300ForAll13xxApps/rib-home/tools-home/rdmt/rdmt/RDMTLOGS
    RMS DB : rms13dev@rms13
    SIM DB : simuser@sim
    TAFR DB : tafruser@sim
    JMS Type : ojms
    JMS HOST : sim
    JMS Port : 1522
    JMX CFG : jmx1.conf
    OC4J : sim.versantindia.com:6003
    Instance : rib-rms-oc4j-instance
    User : oc4jadmin
    RIB APP : rib-rms
    Selections:
    1 - Execute rib_health 6 - Scan App Logs 11 - RIB Config Report
    2 - View lastrun ribhealth 7 - Scan App Logs - delta 12 - View lastrun config report
    3 - Switch OC4J/JMX Config 8 - RIB Timings Utility 13 - local OC4J status (opmn)
    4 - EJB Ping (RIB) 9 - Scan MFQTables 14 - ping db hosts
    5 - EJB Ping (APP) 10 - Scan Upload Tables 15 - system scan
    99 - Main menu
    Selection: 13
    /home/oracle/rib-workspace/Rib1300ForAll13xxApps/rib-home/tools-home/rdmt/rdmt/rdmt_ribhealth_submenu: line 178: opmnctl: command not found
    Enter Key to continue...
    Regards
    Ripan paul.

  • Wls 8.1 sp4 jms store

    Hi,
              I need to move the jms store (for jms server) from file based to db based.
              Server has:
              Distributed Queue Members
              Distributed Topic Members
              Durable Topic Subscriber
              Persistent Messages (potentially un-consumed) for Member Queues and Topics.
              1Any recommendations on the approach for going abt. this ?
              2.Any utilities I could use ?
              Thanx'

    Unless you can upgrade to a newer version, I know of no such utility - even then, I'm not sure I'd recommend it.
              Your topic durable subscribers will be automatically recreated in the new store when they first attempt to connect but they won't have any messages (even if you could xfer the messages, a subscription ignores messages that are older than when the subscription was created anyway).
              Depending on the use case, a solution that uses a messaging bridge or a hand-coded client might apply, where the bridge/client is used to xfer the message to a destination with a different name, and then is used to xfer the message on to the new destination.
              Regardless, I still highly recommend simply draining all of your messages first, in which case the conversion becomes trivial.
              Tom

  • Startup Classes and JMS - Suggestions Please!

    I'm in serious need of having several resources initialized before beans
    start handling requests.
    I tried implementing a Weblogic Startup Class, and it works fine - as long
    as it's the first thing
    to run! -- the problem is, when my Message Driven Beans deploy, if there are
    messages waiting
    for them in their durable subscriptions, they immediately start
    processing... then about 30 seconds
    later Weblogic (6.0sp1) gets around to starting my startup class. If I put
    code in each MDB that
    kicks off the initialization when they are invoked I still run into
    problems, because my initialization
    takes a LONG time (more than 2 minutes) - so I end up with lots of
    transaction rollbacks... which
    are very annoying and clutter up the log files, and scare customers of the
    product.
    Is there anyway to make a startup class/servlet/something that runs and
    completes before any
    other processing occurs?
    Thanks,
    James

    Yes, Startup servlet has the same problem - it doesn't 'startup' until after
    jms messages are already being delivered. :( aside from this, there are
    class loader issues -servlet space and ejb space are not the same...
    Thanks though,
    James
    "minjiang" <[email protected]> wrote in message
    news:[email protected]...
    Hi, did you ever try startup servlet? not startup class?
    mj
    James House wrote:
    The only problem with creating a base class to extend is the fact that
    Java only supports single inheritance, -- and I'm already inheriting...
    >>
    I've been involved with many projects that use WLServer, and in
    almost every one of them, there has been a need for a startup class
    that fires before the server starts handling requests.... strange that
    I'd be the only one to need this, when the need has recurred so often.
    James
    "Raja Mukherjee" <[email protected]> wrote in message
    news:[email protected]...
    James,
    If you have common initialization tasks to be shared by multiple MDBs,
    I
    would create an abstract class (a.k.a BeanAdapter class) where you canhave
    all your initialization logics and have your MDB extend from it.
    I am not convinced that the Startup class needs to run first. In fact,
    I
    have the same view that Startup class should run last. My only wishlist
    for
    startup class was that I should be able to specify order, which isaddressed
    in 6.1.
    I am also getting the feeling from different posts that MDB deploymentwould
    have a re-try logic in 6.1, which I am beginning to look into. Check
    (or
    post) in JMS news group.
    .raja
    "James House" <[email protected]> wrote in message
    news:[email protected]...
    Thanks for the help... I like the pattern you pointed me to better
    than
    anything else... ... but in all cases (your method, Gene's, and whatI'm
    currently doing) I still have to put some code in every MDB that
    I deploy... : (
    Put in a good word for me there at BEA and convince the appropriate
    developer that startup classes should run first!
    James
    "Raja Mukherjee" <[email protected]> wrote in message
    news:[email protected]...
    James,
    There are several ways to solve your problem. I normally use
    setMessageDrivenContext to do all my initialization. There are two
    types
    of
    initialization that I have performed here, first, reading theconfiguration
    file and then load some utility classes in specific order. The
    problem
    with
    the second was that you will have to use synchronized block
    w/HotSpot
    2.0
    to
    keep the order, which is ok. I don't use static block to do the
    initialization, instead use an init() metod. Hopefully you got the
    idea.
    Recently, Gene Chuang created a pattern which esentially does the
    same
    and
    I
    liked the pattern because it was a nicer way of doing what I
    needed to
    do.
    I
    have changed all my examples to customer to use the new pattern.
    You
    can
    find it in
    http://theserverside.com/patterns/thread.jsp?thread_id=7270.
    The
    only think I do not use of this pattern is
    initializeEveryContextSwap()
    method. I am not convinced yet that I would need it (of course
    that
    might
    change over the time).
    Hope this helps, and thanks Gene.
    .raja
    "James House" <[email protected]> wrote in message
    news:[email protected]...
    Ok... here's some more detail:
    The application is largely JMS based, and most of my Session
    EJBs
    are
    invoked only my Message Driven Beans.
    I have a large set of properties that need to be read from a
    config
    file,
    and stored somewhere "globally". I also have a number of
    utilities
    that
    need to get "warmed up" before I start doing any real processing(before
    I start receiving messages from the JMS Topics). These
    utilities
    take
    a
    long time to warm up (a long time being about 45-60 seconds) -
    because
    they are loading hundereds of classes, and creating variousconnections
    to external resources.
    Currently I'm creating a Singleton object that reads the
    configuration
    file
    name from an environment property, and it then parses the file,
    and
    starts
    configuring all of these utilities. Since the "Startup Class"
    didn't
    work
    (weblogic invokes it after I'm already receiving messages), I
    put
    code
    at
    the beginning of all of my MDB's onMessage() methods that calls
    the
    singleton's "getInstance()" method - which synchronizes on alock
    object,
    and does all of it's work.
    I don't like this solution because:
    1- I have to put code in EVERY message-driven bean that I
    create -
    if
    I
    forget one, everything is broken.
    2- I have to increase the transaction time out of the entire
    server
    to
    be over 60 seconds since the beans hang that long while theconfiguration
    is
    happening.
    It seems very obvious that a "Startup Class" should be invoked
    after
    the
    server has come completely up, but before it starts listening
    for
    requests -- isn't the whole point of a "startup class" to getthings
    ready
    that need to be done as soon as the server comes up? but alas,
    the
    person
    who designed this at BEA apparently didn't agree with me on this
    point!
    Any suggestion on better solutions would be greatly appreciated.
    James
    "Raja Mukherjee" <[email protected]> wrote in message
    news:[email protected]...
    You can do it this way, but I would not recommend it, unless
    that's
    the
    only
    way to attack the problem at hand. But that's just me.
    I have seen this problem with multiple clients and in most
    cases
    there
    is
    a
    better way to handle it. If James give us a little more
    information
    on
    what
    type of configuration is he talking about and some background
    of
    his
    application, we as a group can think and may be able to come
    up
    with
    some
    idea.
    .raja
    "Joel Nylund" <[email protected]> wrote in message
    news:[email protected]...
    you could wrap the starting of weblogic in your own class
    and do
    initialization
    there. You have to be careful because of the way weblogic
    classloaders
    work, but
    you may be able to do what you want. Weblogic is just a java
    class,
    so
    you
    can
    start your class, then once your done initializing, just
    call
    weblogic.Server.main
    -Joel
    James House wrote:
    I'm in serious need of having several resources
    initialized
    before
    beans
    start handling requests.
    I tried implementing a Weblogic Startup Class, and it
    works
    fine -
    as
    long
    as it's the first thing
    to run! -- the problem is, when my Message Driven Beans
    deploy,
    if
    there
    are
    messages waiting
    for them in their durable subscriptions, they immediately
    start
    processing... then about 30 seconds
    later Weblogic (6.0sp1) gets around to starting my startupclass.
    If
    I
    put
    code in each MDB that
    kicks off the initialization when they are invoked I still
    run
    into
    problems, because my initialization
    takes a LONG time (more than 2 minutes) - so I end up with
    lots
    of
    transaction rollbacks... which
    are very annoying and clutter up the log files, and scarecustomers
    of
    the
    product.
    Is there anyway to make a startup class/servlet/something
    that
    runs
    and
    completes before any
    other processing occurs?
    Thanks,
    James

  • How to enable JMS with JMQ 2.0

    I have trouble to enable jms in IAS6.0 sp2 with JMQ 2.0, on NT4.0
    The instruction and the utility batch file talked only the JMQ 1.1, but
    JMQ 1.1 is not available from iPlanet
    web site. I downloaded and installed JMQ 2.0 that does not match the ias
    instruction and utilities.
    ias utility "jmqjmsadm.bat" calls "JMQ_HOME/bin/jmsconfig.bat". The
    jmsconfig.bat does not exist in JMQ
    2.0/bin
    What is the solution?
    Thanks a million in advance
    Mike

    the actual that comes with iplanet for JMQ is not proper. Please follow the
    steps
    said in the java programmer's guide. Ref to page no 266 for enabling JMQ(i.e
    IMQ 2.0). actually i had the same problem like you but solved it by using
    guide..
    All the Best
    william
    Bangalore
    india
    default wrote:
    I have trouble to enable jms in IAS6.0 sp2 with JMQ 2.0, on NT4.0
    The instruction and the utility batch file talked only the JMQ 1.1, but
    JMQ 1.1 is not available from iPlanet
    web site. I downloaded and installed JMQ 2.0 that does not match the ias
    instruction and utilities.
    ias utility "jmqjmsadm.bat" calls "JMQ_HOME/bin/jmsconfig.bat". The
    jmsconfig.bat does not exist in JMQ
    2.0/bin
    What is the solution?
    Thanks a million in advance
    Mike

  • My external hard drive is no longer connecting. I was getting a message every time I plugged it in that it needed to be reformatted so I tried to do so and now when I plug it in the computer does not recognize it. It only shows up in utilities...

    Hey guys, I need some serious help. I have an external hard drive, iomega which apears to no longer work; I am sure it is something I have done and I cant figure out what! I am certainly not a computer expert and am in Turkey so I dont have access to a MAC store for assistance or anything like it. Yesterday I plugged my external hard drive into my MacBook and got a message telling me to refotmat. I looked up how to do so and through disk utilities thought I did it right. Now when I plug in the hard drive my laptop does not pick it up; the only place it shows up is in utilities, the same place I tried to repair and reformat. When I am utilities it looks like I have 2 hard drives, one under the other. One tells me the description of the hard drive, the other doesnt really tell me anything. So I erased both of them and I think that is where my problem is. Any help on how I could fix this? I tried to "mount" the one that is not "mounted but it didnt work....I dont even know what that means!!! Help!

    When you erased the disk did you select Mac OS Extended Journaled as the format option?

  • Setting the JMS Header from Payload

    Hi Experts,
    My requirement is to send the payment data coming from ECC to non sap system.Sender adapter is proxy and receiver is JMS.ECC will be sending the filename in one field and payload content as a string in another field.PI has to set the filename coming from ECC in JMS header property.What configuration changes should i need to make in JMS adapter to achieve it?
    Converting the XML to string is possible in PI.But my question is converting the string XML data into XML fields is possible in SAP PI?If so how to do that?
    Please provide your suggestion.
    Regards,
    Karthiga

    Hi Karthiga,
    The UDF is there in blog
    DynamicConfiguration dynamicconfiguration = (DynamicConfiguration)param.get("DynamicConfiguration");
                DynamicConfigurationKey dynamicconfigurationkey = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSMessageProperty0");
                String s = dynamicconfiguration.get(dynamicconfigurationkey);
                CorrID.append(s);
    Please let me know if you have any issue.
    regards,
    Harish

  • How to configure an Alert message if communicationChannel(JMS) stops

    All,
    Is there a way how to configure an alert when the communication channel stops.
    <b>Scenario:</b>
    In the path Runtime workbench->Component Monitoring->Adapter Engine->Communication Channel monitoring, if we see that a communication channel has stopped(RED traffic light as Status), then can we trigger an alert notification for same.
    Currently we have alrerts configured for any message/s failure in the JMS Adapter Framework. So can we trigger simmilar alerts when a comm channel stops(for whatever reason).
    Thanks in advance
    RK

    Hi Sreeram,
    Thanks for the quick reply.
    We have a scenario where we activate individual channels at a given time. So in this case, Adapter will always be in RED as all queues are never running in our scenario.
    So we need an ALERT to be triggered for individual comm channels. Is theer any way that you can think of ?
    Thanks and regards
    RK

  • JDBC connection pool failures when used by JMS stores

              We are using WebLogic 6.1 sp2. We defined a separate connection pool for use by
              a JMS Store.
              <JDBCConnectionPool Name="sybaseJMSPool"
              Targets="cluster00"
              InitialCapacity="2"
              MaxCapacity="10"
              DriverName="com.sybase.jdbc2.jdbc.SybDriver"
              Properties="[email protected]@;[email protected]@;charset=utf8"
              URL="jdbc:sybase:Tds:@jms.db.host@/@jms.db.name@"/>
              (note that the @xxx@ string are replaced by actual values).
              We are using Sybase Jconnect 5.5 to a Sybase ASE 12.5 database.
              We deployed this configuration on a number of environments (testing, staging,
              ..). The actual hardware and network configuration is different for the different
              system, but the WebLogic domain stays the same regarding this issue.
              On the test system we frequently get the following exceptions:
              <Aug 13, 2002 1:56:04 PM CEST> <Alert> <JMS> <www00-test> <node00>
              <ExecuteThread: '6' for queue: 'JMS.TimerClientPool'> <> <> <040048>
              <JMSServer "JMSServer00", store failure while writing message for topic
              OrderChangeTopic, java.io.IOException: JMS JDBC store, connection pool =
              <sybaseJMSPool>, prefix = <JMS00>: write failed
              java.sql.SQLException: JZ006: Caught IOException:
              com.sybase.jdbc2.jdbc.SybConnectionDeadException: JZ0C0: Connection is already
              closed.
              at com.sybase.jdbc2.jdbc.ErrorMessage.raiseErrorCheckDead
              (ErrorMessage.java:715)
              at com.sybase.jdbc2.tds.Tds.handleIOE(Tds.java:3124)
              at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1412)
              at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1341)
              at com.sybase.jdbc2.jdbc.SybStatement.doCancel(SybStatement.java:564)
              at com.sybase.jdbc2.jdbc.SybStatement.updateLoop(SybStatement.java:1672)
              at com.sybase.jdbc2.jdbc.SybStatement.executeUpdate
              (SybStatement.java:1625)
              at com.sybase.jdbc2.jdbc.SybPreparedStatement.executeUpdate
              (SybPreparedStatement.java:91)
              at com.p6spy.engine.logging.P6LogPreparedStatement.executeUpdate
              (P6LogPreparedStatement.java:179)
              at weblogic.jdbc.pool.Statement.executeUpdate(Statement.java:293)
              at weblogic.jms.store.JDBCIOStream.write(JDBCIOStream.java:1246)
              at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:250)
              at weblogic.jms.store.JMSStore.execute(JMSStore.java:182)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              .>
              java.io.IOException: JMS JDBC store, connection pool = <sybaseJMSPool>, prefix
              = <JMS00>: write failed
              java.sql.SQLException: JZ006: Caught IOException:
              com.sybase.jdbc2.jdbc.SybConnectionDeadException: JZ0C0: Connection is already
              closed.
              at com.sybase.jdbc2.jdbc.ErrorMessage.raiseErrorCheckDead
              (ErrorMessage.java:715)
              at com.sybase.jdbc2.tds.Tds.handleIOE(Tds.java:3124)
              at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1412)
              at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1341)
              at com.sybase.jdbc2.jdbc.SybStatement.doCancel(SybStatement.java:564)
              at com.sybase.jdbc2.jdbc.SybStatement.updateLoop(SybStatement.java:1672)
              at com.sybase.jdbc2.jdbc.SybStatement.executeUpdate
              (SybStatement.java:1625)
              at com.sybase.jdbc2.jdbc.SybPreparedStatement.executeUpdate
              (SybPreparedStatement.java:91)
              at com.p6spy.engine.logging.P6LogPreparedStatement.executeUpdate
              (P6LogPreparedStatement.java:179)
              at weblogic.jdbc.pool.Statement.executeUpdate(Statement.java:293)
              at weblogic.jms.store.JDBCIOStream.write(JDBCIOStream.java:1246)
              at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:250)
              at weblogic.jms.store.JMSStore.execute(JMSStore.java:182)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              at weblogic.jms.store.JDBCIOStream.throwIOException
              (JDBCIOStream.java:1213)
              at weblogic.jms.store.JDBCIOStream.write(JDBCIOStream.java:1256)
              at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:250)
              at weblogic.jms.store.JMSStore.execute(JMSStore.java:182)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              Before that this message appeared:
              <Aug 13, 2002 11:31:16 AM CEST> <Error> <ConnectionManager> <www00-test>
              <node00> <ExecuteThread: '26' for queue: 'default'> <> <> <000000>
              <Closing: 'weblogic.rjvm.t3.T3JVMConnection@795af6' because of: 'Server
              received a message over an uninitialized connection: 'JVMMessage from: 'null'
              to: '-4555218188801970213S:192.168.13.1:[7001,7001,7002,7002,7001,7002,-
              1]:ADIS:node00' cmd: 'CMD_REQUEST', QOS: '101', responseId: '1',
              invokableId: '287', flags: 'JVMIDs Not Sent, TX Context Not Sent', abbrev
              offset: '34'''>
              This problem did not occur on another system which was used during a 2 day stress
              testing session.
              It seems that the problem occurs after a period in which no user request where
              made. The user requests trigger EJB's that start sending JMS messages.
              When the problem occurs, the JMS messaging systems seems to lock up as no messages
              are received anymore by the different listeners (MDBs).
              Undeploying and redeploying the JBDC connection pool solves the problem. This
              solution is unacceptable in case of a production system.
              A similarly defined connection pool, which is used by the EJBs to make database
              connection, does not manifest this problem.
              <JDBCConnectionPool Name="sybasePool"
              Targets="cluster00"
              InitialCapacity="10"
              CapacityIncrement="5"
              MaxCapacity="50"
              PreparedStatementCacheSize="150"
              DriverName="com.sybase.jdbc2.jdbc.SybDriver"
              Properties="[email protected]@;[email protected]@;JCONNECT_VERSION=6;charset=utf8"
              URL="jdbc:sybase:Tds:@db.host@/@db.name@"/>
              The JDBC connection pool is used as follows by the JDBC store
              <JMSJDBCStore ConnectionPool="sybaseJMSPool" Name="JDBCStore00" PrefixName="JMS00"/>
              <JMSServer Name="JMSServer00" Store="JDBCStore00" Targets="node00">
              <JMSTopic JNDIName="ADIS.JMSError" JNDINameReplicated="false" Name="ErrorTopic"/>
              <JMSTopic JNDIName="ADIS.Status"
              Name="StatusTopic" RedeliveryDelayOverride="300000"/>
              <JMSTopic JNDIName="ADIS.OrderChange" JNDINameReplicated="false"
              Name="OrderChangeTopic" RedeliveryLimit="3"/>
              </JMSServer>
              Turning on the "Test Reserved Connection" with a appropriate test table does not
              help.
              Some sources on the internet tell us that JZ0C0 errors in the Jconnect driver
              can be related to network problems. Nevertheless the connection pool should be
              able to cope with this.
              Can you provide any solution for this ? Or give us hints what can cause the problem
              

    Zhenhao Qi wrote:
    thanks! Joe.
    The SQL statement itself can no longer be simplified, the long excuation time is due to the database size and complicated Select criteria. I can easily reproduce the problem by using this SQL. I tried "BEA's Oracle driver (Type 4): Version 8.1.7,9.0.1,9.2.0". the question can be dissect into 2 pieces:
    1) why the jdbc connection (using oracle.jdbc.OracleDriver) won't return anything if the SQL execution time > 5min, that is probably the Oracle's problem
    2) why the occupied connection pool won't release even I set "Statementtimeout=600", this is Weblogic's problem.
    ZhenhaoHi. Yes, (1) is oracle's problem. (2) may also be. The JDBC spec has very few
    allowances for one thread to interrupt a second thread's JDBC call. If we
    transmit your timeout request by calling setQueryTimeout() on the oracle
    statement, and if you have a weblogic-controlled transaction we call
    Statement.cancel() on any ongoing statement, we end up relying on whether
    the Oracle driver implements and responds to those calls.
    Are you doing weblogic-controlled transactions? Are you/can you
    call Statement.setQueryTimeout() on your statements, or are these
    generated JDBC queries?
    If you can duplicate the problem using the weblogic.jdbc.oracle.OracleDriver
    we have some other debug avenues. This would be good even if you really
    want to use the thin driver, because we will do the same JDBC calls to
    either driver, and the debug would prove (if) we set up a query timeout
    and if we call cancel(). If we do, then we can know that it is the Oracle
    driver failing in these regards.
    Joe

  • Not all JMS consumers are created equal

    Hi,
    I am experiencing a very strange problem with weblogic 9.2 JMS.
    I am using JMS as flow control in an application that allows our users to import data into our application.
    the data to be imported varies in size from 100's of records to many hundred thousands of records.
    JMS feed a MDB that takes the request and imports the data. The DD allows to 10 concurrent MDB's to service the requests.
    The problem arises when the 11'th and 12th request comes in. Instead of waiting for the first availibe MDB to service the requests they seems to be put into the queue of the MDB that was started first. If this MDB is in the process of importing a very large file request 11 and 12 will sit and wait until the large one is done even though there are other MDB's that are idle.
    I am hoping that there is an easy fix for this, but for the life of me, I cant seem to find it.
    The DD for the MDB looks as follows
    <weblogic-enterprise-bean>
    <ejb-name>RuleEngineMDB</ejb-name>
    <message-driven-descriptor>
    <pool>
    <max-beans-in-free-pool>10</max-beans-in-free-pool>
    <initial-beans-in-free-pool>10</initial-beans-in-free-pool>
    </pool>
    <destination-jndi-name>com.company.product.RuleEngineRequestQueue</destination-jndi-name>
    </message-driven-descriptor>
    </weblogic-enterprise-bean>
    the queue is defined in Weblog as
    <queue name="RuleEngineReque
    stQueue">
    <sub-deployment-name>MyJMSServer</sub-deployment-name>
    <delivery-params-overrides>
    <delivery-mode>Non-Persistent</delivery-mode>
    </delivery-params-overrides>
    <message-logging-params>
    <message-logging-enabled>true</message-logging-enabled>
    <message-logging-format>%header%,%properties%,%body%</message-logging-format>
    </message-logging-params>
    <jndi-name>com.company.product.RuleEngineRequestQueue</jndi-name>
    </queue>
    regards,
    Lars Hansson
    CTO Compost Marketing AB.

    A little more detail: You will need to configure and target a custom conection factory with "message maximum" set to 1 (the default is 10), and then modify the MDB descriptor to reference the JNDI name of the custom connection factory. The connection factory should be targeted to the entire cluster, and must be targeted to the same cluster that hosts distributed queue. If the MDB is transactional, ensure that that the custom connection factory is also "xa enabled".
    Edited by: TomB on Mar 2, 2010 2:44 PM

  • JMS connection from SAP PI to Oracle AQ via JNDI...

    Hi,
    I am currently working on a project that requires connections between PI and Oracle AQ. It was advised that we shoule use PI JMS adpater with JNDI driver. However, it seems that not many people have tried this approach.
    Has anyone had similar solutions in production ? How repliable it is ?
    Your help is very much appreciated
    Tim

    Hi Tim,
    We implemented a similar scenario and now itu2019s still working.
    You have to configure a JNDI connection, but not directly with the Oracle AQ. The Oracle AQ are just queues, and you need a JMS provider in order to establish the connection with these queues. The solution we implemented was:
    1. Configure one OC4J server as JMS provider for the Oracle AQ queues.
    2. Configure JMS communication channels in SAP PI to establish the connection with the OC4J server.
    Maybe you can use a different and newer JMS provider, as BEA Weblogic or SAP WAS (I donu2019t know if itu2019s possible).
    We implement the scenario in SAP PI 7.0, and with this version we had a problem: When the communication between JMS adapter and the queues was broken (the DDBB fell down for example), the channel failed, itu2019s normal. But when the DDBB was already running the channel stayed in an error state, and we had to restart the channel manually. The response of SAP to this issue was that the channel behavior was correct because the connection failed.
    But this problem occurred rarely, maybe once a month. The solution is very reliable, we exchange a lot of message with this solution, and support messages of any size with an excellent performance.
    Best Regards,
    Roberto

  • Voice memos in Utilities disappeared

    My voice memos in the utilities section have disappeared from my iphone4, but they are backed up onto my mac mini. How do I reload them back onto my phone?

    No. After waiting over two hours on the phone with apple support, they told me the voice memos were somehow currupt and there's no way to get them back.

  • Error on my IPad 2. When I'm trying to access in utilities to configure the email, this close suddenly and send me to home page

    Error on my IPad 2. When I'm trying to access in utilities to configure the email, this close suddenly and send me to home page.

    Not sure about Utilities on your iPad. Do you mean the Settings app?
    First thing to try is a reboot of your iPad. Press and hold the Home and Sleep buttons simultaneously ignoring the red slider until the Apple logo appear. Let go of the buttons and let the iPad restart. See if that fixes your problem.

  • I cannot add a Wi-Fi guest network. Gone to Utilities Airport Utilities and all get is an image/browser of my Airport Extreme. Looking for the browser which has the title Wireless but cannot find anywhere. I need help?

    I cannot add a Wi-Fi guest network. Gone to Utilities>Airport Utilities and all I get is an image/browser of my Airport Extreme. Looking for the browser window which has the title Wireless but cannot find anywhere. What am I doing wrong?

    Open AirPort Utility. The first screen looks something like this:
    Click on the AirPort Extreme and another screen will appear. Click Edit, then the window with the Wireless tab will appear.
    If you do not see these screens, you will need to start over and configure your AirPort again.

  • Using socket and JMS protocol in the same logic for OSB

    Hi frnds,
    In my organization...the only communication protocol used is "socket" protocol. However, I want to use JMS protocol to process incoming messages. Can somebody help me figuring out how to go about it.
    Using some nice OSB blogs, I am able to create the JMS connection factory and JMS queues in weblogic. And that works fine when I select the communication protocol as JMS while creating the BS and PS.
    What should be my message flow when the communication protocol used is "socket" for both BS and PS.
    salil

    Hi,
    Make the BS as JMS and the PS as socket, in the PS's flow do a route for the BS... Then if an external call is made to the PS via socket, it will send a messages to a JMS queue...
    Hope this helps...
    Cheers,
    Vlad

Maybe you are looking for

  • My upgrade for Snow Leopard for my Mac won't stay in disk.

    I have the snow Leopard upgrade for my Mac OS X 10.5.8 like they told me I needed at Apple.  But when I insert the disk it doesn't take it, it stays in for a few seconds then comes out.  Is there anything I can do?  Thank you.

  • Problems after Update iTunes 7

    I updated to iTunes 7. Now my iPod is not recognised anymore. After connecting my iPod nano nothing was happening anymore and I had to disconnect the iPod and lost everything on the iPod. The iPod is working but without connection to the computer not

  • Why are my parameter values not setting in report?

    G'day, Like many others I am a developer who is new to crystal reports.  I have researched a lot for setting report parameters and although my code seem to be working when I open the report through code I'm always asked to re-enter the parameter valu

  • JDBC Receiver - Muliple parallel connections?

    Hi ,       Does the Receiver JDBC adapter support multiple parallel connections to the database. Can the calls be made in parallel. If yes then where is this parameter (maximum connections) set?. I was testing an RFC to JDBC sync scenario... My call

  • My indesign form wont import

    i get an error when trying to import my indesign pdf form, it worked fine and i made some changes to it and now i get erro can't import as unable to parse. what generally causes this? the error is a bit pointless as it doesnt state what it cant parse