Solaris JMS C api

          Hello,
          I am having some problems using the JMS C api. The
          call to JmsContextCreate is failing with a -3;
          JMS_JVM_ERROR. The url, username, and password are
          correct and I am passing NULL for the jndiFactory
          to use the deafult Weblogic server context factory
          of "weblogic.jndi.WLInitialContextFactory".
          Setup:
          Solaris 8, Weblogic 8.1 sp1, jdk_141_03, c/c++ client
          using the Studio8 compiler with other third party libraries,
          and the JMS C api obtained from:
          http://ftpna2.bea.com/pub/downloads/jmscapi.ZIP
          The c/c++ client compiles, links, and runs. The
          CLASSPATH and JAVA_HOME environment variables
          have been set accordingly with the JMS C api
          classes directory added to the CLASSPATH.
          I have compiled the c/c++ client with the JMSDEBUG
          defined and it produces the following to stdout/stderr:
          There was an error trying to initialize the HPI library.
          Please check your installation, HotSpot does not work correctly
          when installed in the JDK 1.2 Solaris Production Release, or
          with any JDK 1.1.x release.
          Also the c/c++ client produces another log file
          called "ULOG.pid". Inside this log contains the
          following:
          085910.fusion!?proc.23074.12.-2: 12-01-2003: Weblogic Server Version 7.1
          085910.fusion!?proc.23074.12.-2: LIBJMSC_CAT:15: NLS:6: Message not found, catal
          og LIBJMSC_CAT, set 1, num 15
          It looks like the libjmsc.so library, that is part of
          the jmscapi.ZIP file, is conpiled against an older version
          of jdk and Weblogic. Is there a newer version of the jmscapi.ZIP
          package compiled against a new version of jdk and Weblogic?
          Or is there something going wrong.
          Thanks,
          Keith
          

It was caused by the 2nd threads' classloader.
          The 2nd thread uses the bootstrap classloader by default when attached to jvm, which loads the 'core' java classes only, not even extended classes.
          <p>
          This cause JNDI factory initialization failed.
          <p>
          The solution is to set the 2nd thread's context loader as the system class loader using JNI. See java.lang.Thread#setContextLoader and java.lang.ClassLoader#getSystemClassLoader.

Similar Messages

  • JMS C API in Solaris SPARC

    Hi Mates ,
    I am trying to use the JMS C API to invoke a JMS queue from a stand alone C code in SOLARIS SPARC 10 . The Weblogic version is 10.0 patch 2 .
    I am not able to compile the program . I am using the following command to compile
    CLASSPATH=/weblogic/bea/wlserver_10.0/server/lib/weblogic.jar
    export CLASSPATH
    LD_LIBRARY_PATH=/weblogic1/bea/wlserver_10.0/server/native/solaris/sparc:/usr/java/jre/lib/sparc/server/.
    export LD_LIBRARY_PATH
    cc -I/weblogic1/bea/wlserver_10.0/server/include -L/usr/lib -L/weblogic1/bea/wlserver_10.0/server/native/solaris/sparc -L/usr/java/jre/lib/sparc/server -ljmsc -ljvm -lpthread -o JMSClient JMSClient.c
    I am getting the following error
    Undefined first referenced
    symbol in file
    sched_yield /weblogic1/bea/wlserver_10.0/server/native/solaris/sparc/libjmsc.so
    ld: fatal: Symbol referencing errors. No output written to JMSClient
    What could be the issue .
    Your help in this will be very useful to me .
    Regards
    Dinesh
    Edited by: user12039447 on Nov 16, 2009 4:10 AM
    Edited by: user12039447 on Nov 16, 2009 4:19 AM

    It was caused by the 2nd threads' classloader.
              The 2nd thread uses the bootstrap classloader by default when attached to jvm, which loads the 'core' java classes only, not even extended classes.
              <p>
              This cause JNDI factory initialization failed.
              <p>
              The solution is to set the 2nd thread's context loader as the system class loader using JNI. See java.lang.Thread#setContextLoader and java.lang.ClassLoader#getSystemClassLoader.

  • Jms c api does NOT support multiple threads on solaris?

    It appears that weblogic jms c api (solaris) does not work with multiple threads.
              I wrote a simple test program with multiple threads in the following environment:
              <p>
              <pre>solaris 5.7 Generic_106541-22 sun4u sparc SUNW,Ultra-250,
              weblogic 8.1.3
              jdk 1.4.2_b04
              </pre>
              <b>ONLY the first thread is able to create jms queue senders and send text messages without any problem. The second thread always get the following exception:</b>
              <pre>weblogic.jms.common.JMSException
              at weblogic.jms.dispatcher.DispatcherWrapperState.dispatchSyncTran(DispatcherWrapperStat
              e.java:440)
              at weblogic.jms.client.JMSProducer.sendInternal(JMSProducer.java:382)
              at weblogic.jms.client.JMSProducer.send(JMSProducer.java:207)
              Caused by: java.lang.ExceptionInInitializerError
              at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:309)
              at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:258)
              at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:253)
              at weblogic.rjvm.MsgAbbrevInputStream.resolveClass(MsgAbbrevInputStream.java:324)
              at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream
              .java:96)
              at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:117)
              at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:56)
              at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:159)
              at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
              at weblogic.jms.dispatcher.DispatcherImpl_813_WLStub.dispatchSyncTranFuture(Unknown Sour
              ce)
              at weblogic.jms.dispatcher.DispatcherWrapperState.dispatchSyncTran(DispatcherWrapperStat
              e.java:406)
              ... 2 more
              Caused by: <b>java.lang.NullPointerException</b>
              at weblogic.i18ntools.L10nLookup.loadProps(L10nLookup.java:88)
              at weblogic.i18ntools.L10nLookup.<init>(L10nLookup.java:160)
              at weblogic.i18ntools.L10nLookup.init(L10nLookup.java:132)
              at weblogic.i18ntools.L10nLookup.getLocalizer(L10nLookup.java:315)
              at weblogic.management.commo.internal.CommoCommandLineTextFormatter.<init>(CommoCommandL
              ineTextFormatter.java:20)
              at weblogic.management.commo.Commo.<clinit>(Commo.java:89)
              ... 13 more</pre>

    It was caused by the 2nd threads' classloader.
              The 2nd thread uses the bootstrap classloader by default when attached to jvm, which loads the 'core' java classes only, not even extended classes.
              <p>
              This cause JNDI factory initialization failed.
              <p>
              The solution is to set the 2nd thread's context loader as the system class loader using JNI. See java.lang.Thread#setContextLoader and java.lang.ClassLoader#getSystemClassLoader.

  • JMS C API for AIX

              Hi,
              Is there a version for JMS C API for AIX ? Where can I find it ?
              Thanks,
              Ziv
              

    If your willing to use an untested binary, I suppose you
              might be able to get BEA to compile one for you (the
              majority of work in a new platform port is often just making sure
              that it passes all tests, even if, as is often happens,
              there is a 100% pass rate.) Again, I recommend making
              sure you make a request through customer support and
              make sure that JMS product manager Frazier Miller sees it.
              z wrote:
              > Our project is maintaining few platforms: HP, Solaris, AIX, etc ...
              > Can we have the source of the C API implementation, so we would build it in any
              > requested
              > platform ?
              >
              > Tom Barnes <[email protected]> wrote:
              >
              >>No, just HP, Solaris, and Windows - with official
              >>support (and more platforms) coming in the next
              >>release. If you want an AIX version now, you
              >>can contact customer support and file an enhancement
              >>request. This request should then be forwarded to
              >>the product manager for the JMS C API (Frazier Miller).
              >>
              >>As a work-around for C on AIX you can use rmi-iiop and
              >>a C-based IIOP client - post to the rmi-iiop
              >>newsgroup for details. There are other work-arounds as well.
              >>
              >>z wrote:
              >>
              >>
              >>>Hi,
              >>>
              >>>Is there a version for JMS C API for AIX ? Where can I find it ?
              >>>
              >>>Thanks,
              >>>Ziv
              >>>
              >>>
              >>>
              >>
              >
              

  • Where can I download the JMS C API for WLS 12c?

    Where can I download the JMS C API for WLS 12c? It doeesn't appear to be bundled with the standard or supplemental WLS zip files, nor obvious as a separate download bundle. Searching oracle.com finds plenty of documents which reference its existence, but not how to obtain it (unless I missed something). Pointers appreciated, thanks.

    Thanks. Unfortunately, that's just a reference to the documentation. As I said, there's lots of reference to the C API in the documentation but I need the source code (I have an existing application running against WLS8.1/Solaris that I want to port to WLS12c/linux).

  • How can I delete the TemporaryTopic using JMS C API or VC++

    Hello everybody,
    how can I delete the TemporaryTopic after created TemporaryTopic using JMS C API "JmsSessionCreateTemporaryTopic"?
    I checked the document about JMS C API, but I couldn't find any API for delete TemporaryTopic, it's really not existing?
    Or if there's any other way that I can delete TemporaryTopic using VC++? Any comments will be appreciated.
    Thanks for your help!
    Youbing he

    As far as I can tell, there's no C-API option for deleting a temporary topic other than to close the connection used to create the temporary topic. Note that it is inefficient to frequently create and destroy temporary topics.
    You can get pretty much equivalent performance and functionality with a shared regular topic, non-durable subscriptions, and selectors that take advantage of the "indexed subscriber" optimization. (Consumers specify a selector that is unique to them in the exact form of "MyUniqueID NOT NULL", while publishers send to a specific consumer by adding "MyUniqueID" as a message property. The "X NOT NULL" selector format activates the indexed subscriber optimization.)
    Tom
    Edited by: TomB on Apr 27, 2010 10:44 AM

  • Problem JMS-c api for message Acknowledgement

    Hi,
              I am working in a project that uses bea-JMS C api for
              Communictions.In my project i am using topic messaging for message reciving and sending..Here i am using durablesubscriber for receiving and client Acknowledgement to Acknowledge the message.
              In receiving function I store the message in another JmsMessage for Client-Acknowledgement.
              Here comes one problem that, while i Acknowledge on the receive function each and every message Acknowledge correctly.But while i Acknowledge that message from some other function it return -1 as , that it cannot Acknowledge.The other function is working in another thread.
              Wheather the seprate thread will make the problem for confirmation.

    Similar to JDBC connections, JMS sessions and their related child producers and consumers are not thread-safe (with the one exception of the session.close() method).
              For example, without added application level locking, its not safe to acknowledge a message from one thread while another thread receives or produces a message. This has special implications for asynchronous consumers, as once the asynchronous consumer is created, access to the session and objects is limited to code within the "onMessage()" and "onException()" callbacks.
              This behavior is detailed in the JMS specification.
              Tom

  • Jms c api for weblogic

    How to access jms queue of weblogic server from c/c++ application.Can any one provide example for this.I have tried to download jmscapi from
    http://dev2dev.bea.com/resourcelibrary/utilitiestools/environment.jsp#jmscapi
    but the page is not available.
    Details:-
    WLS: Weblogic server 10.x
    Linux / Windows XP OS
    VC++ 2008
    ++JMS server on WebLogic server 10.x
    OSB 10g R3
    Please provide where it can be downloaded or if any one can share it.Any help regarding this would be appreciated.

    For 8.1, the unofficial dev2dev JMS C-API download is all that I know of. There's also now an official version now packaged with 9.0. Since the official 9.0 version is very close to the unofficial version, I imagine it would work - and would be a bit more up-to-date. But while I'm fairly sure that BEA "officially" supports using the official 9.0 version with a 9.0 client to communicate with 8.1, I don't know if BEA would support using the 9.0 version with an 8.1 client.
              I recommend contacting BEA through channels to get the full story (either through sales or support).
              Tom

  • Is WebLogic JMS C API backwards compatible with 8.1

    I need to be able to send a JMS message from a C++ legacy application, so I am looking at using the JMS C API to do this. However, I am stuck with using WebLogic Server version 8.1. The JMS C API came out with version 9, so I am wondering if it would be possible to use it with 8.1?
              Can this be done? Thanks in advance.

    I've shot off an internal email to see if I can get an answer - I'll post again if I get one. Some notes:
              - Prior to 9.0, there was a separate C-API kit available on dev2dev which is supported (via this newsgroup only), I don't know where it is now.
              - I think its likely the 9.0 C-API will work with an 8.1 client (or 7.0 for that matter), I just don't know if this usage supported.
              - You could use the 9.2 C-API with a 9.2 client to communicate with an 8.1 server. This is definitely supported.
              Tom, BEA

  • JMS C API - Retention Of Non-Acknowledged Messages

    I am sending messages via the JMS C API from a session created using CLIENT_ACKNOWLEDGE option in JmsConnectionCreateSession() call. Yet, if I receive a message and do not acknowledge it, then I shut down and bring back up my app, the message is not there.
    Shouldn't it be there on startup of app? Is there a special API call to retrieve messages that weren't acknowledeged?
    Thanks.
    Moshe

    I got it to work, i had to reorder the path directories.. which is kind of strange!
    here is how i sat up the environment to get the C API to work based on : "JmsContextCreate" return -3 (JMS_JVM_ERROR)
    CLASSPATH:
         <somepath>\lib\weblogic.jar
    NLSPATH:     
         <somepath>\lib
    PATH:
         <somepath>\lib;                              // : jmsc.lib, LIBJMSC_CAT, weblogic.jar or wlfullclient.jar
         <somepath>\bin                              // : jmsc.dll
         C:\Oracle\Middleware\weblogic92\common\lib          // : jni.dll
         C:\Oracle\Middleware\jdk160_18\jre\bin;               // : java.exe++
         C:\Oracle\Middleware\jdk160_18\jre\bin\client;          // : jvm.dll
    Directories in ENV->PATH should be ordered like this:
    1. <somepath>\lib;                              // : jmsc.lib, LIBJMSC_CAT, weblogic.jar or wlfullclient.jar
    2. <somepath>\bin;                              // : jmsc.dll
    3. C:\Oracle\Middleware\weblogic92\common\lib;                         
    4. C:\Oracle\Middleware\jdk160_18\jre\bin;
    5. C:\Oracle\Middleware\jdk160_18\jre\bin\client;

  • JMS c API !! Process receiving SIGTERM ?

    Hi
    Im using JMS C api and writing a program.
    It is multi process system and IM receiving SIGTERM from nowhere.
    and my processes are aborting.
    I have my own handler for sigterm.
    Is Jms or any related component is using SIGTERM internally for any purpose (while disconnecting I think ) ???
    Plz Help me out ??
    Thanks

    I'm not a C expert but scanning the code for SIGTERM or signal doesn't bring up anything.
    Tom

  • JMS C API

              Hi Tom,
              Thanks a lot for the reply ,actually customer has a deadline ,earlier they were
              using JMS C api for windows for using WebLogic JMS ,now they are moving to Linux
              ,so they need JMS C api urgently.
              Please help me ,if possible try to escalate it.
              Again,thanks a lot.
              regards,
              Subodh
              

    I've been told that customers should place this request
              directly through BEA customer support, and have them
              them forward it to Frazier Miller (BEA's product
              manager for JMS). Since you are a BEA employee,
              you should actually place the request directly with
              Frazier (as we discussed off-line).
              Subodh KUmar wrote:
              > Hi Tom,
              >
              > Thanks a lot for the reply ,actually customer has a deadline ,earlier they were
              > using JMS C api for windows for using WebLogic JMS ,now they are moving to Linux
              > ,so they need JMS C api urgently.
              >
              > Please help me ,if possible try to escalate it.
              >
              > Again,thanks a lot.
              >
              > regards,
              > Subodh
              >
              >
              

  • JMS C API 8.1 sp4

    hi, i need to uptate a software build using JMS C API for weblogic 8.1 sp2 to sp4 .there is any new jms c api for this? how can i download it?
              ix exist, what are the changes?? thanks

    For 8.1, the unofficial dev2dev JMS C-API download is all that I know of. There's also now an official version now packaged with 9.0. Since the official 9.0 version is very close to the unofficial version, I imagine it would work - and would be a bit more up-to-date. But while I'm fairly sure that BEA "officially" supports using the official 9.0 version with a 9.0 client to communicate with 8.1, I don't know if BEA would support using the 9.0 version with an 8.1 client.
              I recommend contacting BEA through channels to get the full story (either through sales or support).
              Tom

  • JMS C API for linux

              Hi,
              I need the JMS C API for Linux to connect to WLS(WebLogic Server).
              Please let me know whether it is available for linux or not.
              Thanking you in anticipation.
              regards,
              Subodh
              

              Hi Tom,
              Thanks a lot for the reply ,actually customer has a deadline ,earlier they were
              using JMS C api for windows for using WebLogic JMS ,now they are moving to Linux
              ,so they need JMS C api urgently.
              Please help me ,if possible try to escalate it.
              Again,thanks a lot.
              regards,
              Subodh
              Tom Barnes <[email protected]> wrote:
              >Also note that there are several ways to contact
              >WL from C without using JMS.
              >
              >Subodh Kumar wrote:
              >> Hi,
              >>
              >> I need the JMS C API for Linux to connect to WLS(WebLogic Server).
              >>
              >> Please let me know whether it is available for linux or not.
              >>
              >> Thanking you in anticipation.
              >>
              >> regards,
              >> Subodh
              >>
              >>
              >
              

  • JMS C API -- Memory usage

    Hi
    Im writing an application to using JMS C API on Soalris platform.
    When Im executing the program , after the connection is made memory usage is shooting up !!!
    Do JMS library reserve any memory when a connection is made. ???
    Does JMS api create any threads ???
    Adv Thanks
    Chandu
    Edited by: Raja_cs on May 27, 2008 11:40 PM

    The client runtime is caching messages sent by the broker (default number is 1000). So I'd expect to see memory usage going up.

Maybe you are looking for

  • What does manually manage music and videos mean

    What does this do or not do?

  • Bypassing the non destructive editing for emptying trash

    Hey. I am completey at my wits end over this. I have footage imported to three separate imovie projects. I have to try and combine these on the one timeline. However everytime I try to move anything it tells me I don't have enough memory. Fair enough

  • Api call to verify an expression

    Is there any api call to verify (validate) an expression that I can use in CVI? Similar to the check button on the left side of the textbox when entering an expression. Thanks for the help. --Aaron.

  • What happened to the Advanced Menu?

    I need to convert to MP3. I can't. Why? Because the advanced menu is gone. I try serching for answers, and all I get is stuff for the old itunes. What have you done with it? NO! I do not have a problem with the fonts.

  • Before we buy, a few questions...

    Right now my organization currently uses Microsoft Producer and Articulate for our eLearning needs. Well, suffice to say, MS Producer just isn't cutting it anymore. We need the ability to do the same things Articulate does when we output for Video On