JMS, Oracle AQ

Is anybody using JMS in conjunction with Oracle AQ?
Are you using Oracle 8i or Oracle 9i?
What is your impression of Oracle's AQ technology?
What is your impression of Oracle's JMS implementation?

Hi Sean,
I'm sure what you're after are non-Oracle folks to give you an opinion on Oracle's messaging technology. As an Oracle employee let me just
say that we have a number of accounts taking advantage of Advanced Queuing (AQ) as well as the JMS interface to AQ (OJMS).
Oracle will also be offering a J2EE 1.3 compatible, lightweight, in-memory JMS provider via the Oracle9i Application Server in a future release.
One suggestion, post your questions to the "Products -> Database -> Oracle Advanced Queuing" OTN Discussion Forum as well. I'm sure you'll
get an opinion from the AQ customers there who probably aren't on this forum.
John

Similar Messages

  • JMS - Oracle - ArchieveLog

    Welcome,
              Digital World!!!
              Everything is limited, even "random" produces periodic sequence...
              Is here any advice to Senior Oracle DBAs not to use ArchiveLog for JMS
              Schema?
              Today, I had 2500msg/min., each "msg" was 20 bytes only in size, and each
              one added 8Kb to Oracle log files, - copy of changed BLOCK... And, of
              course, Oracle stopped after a few hours...
              Regards,
              http://www.FuadEfendiyev.com
              P.S.
              Two Beers Or Not Two Beers!
              

    Hi Sean,
    I'm sure what you're after are non-Oracle folks to give you an opinion on Oracle's messaging technology. As an Oracle employee let me just
    say that we have a number of accounts taking advantage of Advanced Queuing (AQ) as well as the JMS interface to AQ (OJMS).
    Oracle will also be offering a J2EE 1.3 compatible, lightweight, in-memory JMS provider via the Oracle9i Application Server in a future release.
    One suggestion, post your questions to the "Products -> Database -> Oracle Advanced Queuing" OTN Discussion Forum as well. I'm sure you'll
    get an opinion from the AQ customers there who probably aren't on this forum.
    John

  • JMS, Oracle 9i, Oracle AQ

    Is anybody using JMS in conjunction with Oracle AQ?
    Are you using Oracle 8i or Oracle 9i?
    What is your impression of Oracle's AQ technology?
    What is your impression of Oracle's JMS implementation?

    I'm currently implementing JMS with Oracle AQ. I ran baselines using 8i, but am now using 9i (version 9.2). Version 9.2 has a full implementation of JMS--no annoying "feature not implemented" exceptions at runtime.
    Their JMS implementation is no better than average, but it came with Oracle which we already have, so no extra license fees. In addition it offered the ability of the database to write to the AQs in PL-SQL and the middle tier to read it as JMS.
    I'm no DBA and no big SQL programmer either, but after living exclusively in the Java world for some time, I find Oracle's documentation shoddy, and their support inadequate. I've just wasted a day trying to figure out how to put a piece of text into a aq$_jms_text_message in PL-SQL.

  • AQ and JMS - Oracle XA exception when trying to read message

    I'm trying to setup Oracle AQ as a foreign JMS provider. I've setup the DipsAQXAQueueConnectionFactory and DipsAQDestination in the JNDI of my weblogic server according to the sample posted by Eric Ma. This works ok and prints out the following on server startup....
              The arguments are :
              {JNDIServerPort=7001, QueueJndiName=AQJMSQueue, JNDIServer=localhost, AQueueName=DIPS_AQJMS_QUEUE, S
              erver=147.209.179.194, Port=15005, AQueueTableName=DIPS_AQJMS_TEXT, Instance=dev39, DriverType=oci8,
               MessageType=SYS.AQ$_JMS_TEXT_MESSAGE, FactoryJndiName=AQJMSConnectionFactory}
              The XA queue connection factory and queue is bound to the WLS JNDI Tree !
              My MDB ejb is configured as follows...
              * @ejbgen:message-driven default-transaction="Required"
              * ejb-name = FmcDispatch
              * destination-jndi-name = AQJMSQueue
              * destination-type = javax.jms.Queue
              * @ejbgen:foreign-jms-provider initial-context-factory="weblogic.jndi.WLInitialContextFactory" provider-url="t3://localhost:7001"
              * connection-factory-jndi-name="AQXAJMSConnectionFactory"
              public class FmcDispatch
              extends GenericMessageDrivenBean
              implements MessageDrivenBean, MessageListener
              The problem is, when the above EJB is deployed, I'm always getting the following exceptions...
              >
              <14/02/2006 11:21:03 AM EST> <Error> <EJB> <BEA-010079> <An error occurred while attempting to recei
              ve a message from JMS for processing by a message-driven bean: [EJB:010196]'javax.jms.JMSException:
              [J2EE:160049]An error occurred while registering the JMS connection with JTA: javax.transaction.Syst
              emException: start() failed on resource 'weblogic.ejb20.JMSConnectionPoller.FmcDispatch': XAER_RMERR
              : A resource manager error has occured in the transaction branch
              oracle.jdbc.xa.OracleXAException
              at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1184)
              at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:311)
              The exception is : javax.jms.JMSException: [J2EE:160049]An error occurred while registering the JMS
              connection with JTA: javax.transaction.SystemException: start() failed on resource 'weblogic.ejb20.J
              MSConnectionPoller.FmcDispatch': XAER_RMERR : A resource manager error has occured in the transactio
              n branch
              oracle.jdbc.xa.OracleXAException
              at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1184)
              at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:311)
              at weblogic.deployment.jms.WrappedXAResource_oracle_jdbc_xa_client_OracleXAResource.start(Un
              known Source)
              at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1145)
              at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1077
              at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:240)
              at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.
              java:449)
              Any ideas?

    Oracle home is pointing to wrong location.When we made the change to corrent location.Then we rebuilt the jar file started the managed server it is working fine.

  • Any kind of integration experience with Weblogic JMS and Oracle AQ?

    Hi,
    In my company I work with java developers who believe in some kind of "holly" database independence I don't understand and as a result my life as a database developer is hell on earth.. Yesterday we again started to discuss, this time where to log, they believe database is slow and prefer logging to filesystem, after some hours finally I could convince them for some operational and reporting needs to use the database and will do this in an asyncronous way whiich they won't get slow. After all I believe the reason for a database is data, this is the place where data lives, and with the correct desing and implementation logging to database would perform better.
    I love Oracle features, and know that we paid a lot for this software, so today I started investigating this promised solution. And quickly I found AQ and JMS topics in the documentation :)
    After this introduction here is my problem; my company use BEA Weblogic as application server and the java guys want AQ to automatically (but of course with some delay) take their JMS log requests into database tables. Does any one have similar application experience, or any kind of integration experience with Weblogic JMS and Oracle AQ?
    Any comments, references, documentation, sample code, url will be most welcomed :)
    Thank you very much!
    Tonguc
    [email protected]
    References I found upto now;
    Oracle® Streams Advanced Queuing Java API Reference 10g Release 2 (10.2) http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14291/toc.htm
    (Packages; javax.jms & oracle.jms)
    Oracle® Streams Advanced Queuing User's Guide and Reference 10g Release 2 (10.2) http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14257/toc.htm
    Part IV
    Using Oracle JMS and Oracle Streams AQPart V describes how to use Oracle JMS and Oracle Streams Advanced Queuing (AQ).
    Chapter 11, "Introducing Oracle JMS"
    Chapter 12, "Oracle JMS Basic Operations"
    Chapter 13, "Oracle JMS Point-to-Point"
    Chapter 14, "Oracle JMS Publish/Subscribe"
    Chapter 15, "Oracle JMS Shared Interfaces"
    Chapter 16, "Oracle JMS Types Examples"
    A Sample Code from Otn
    http://www.oracle.com/technology/sample_code/tech/java/web_services/jmsws/NewsQueueEJB.java.html

    I wouldn't go as far to say Oracle AQ is out-dated today. However, it is indeed a proprietary technology that did not found much main-stream adoption in the earlier years after its introduction. The advent of JMS made it somewhat more useful (or should I say intriguing, because more people are trying to tie it together with other J2EE technologies), but the Oracle's JMS wrapper classes in aqapi.jar were not feature complete for a long while, so using it outside Oracle's application server was painful, if not impossible. I do agree that the info at the dev2dev's JMS newsgroup or in this forum is highly fragmented, as neither Oracle nor BEA provides an official solution to integrate AQ with WebLogic, so people like us have to learn the technology through experimentation and in a piecemeal fashion.
    3 years ago I was literally "playing around" - we had a polling mechanism set up to use triggers to write Oracle data changes into an event table, and had a Java-based daemon to scan that table and publish events as JMS messages to the WebLogic JMS server. This continues to work reliably till today, but I was looking for a solution that has few parts - I wanted to hook up my WebLogic MDB directly to AQ as a foreign JMS provider. Although I was able to get it to work (including XA), there were a few hoops I had to jump through, such as decompiling the Oracle AQjms classes to make them bind to the WebLogic JNDI tree.
    One year after that Diptanshu Parui took what I did a giant step further - he extended the Oracle AQjms classes to allow them to be bound to the WebLogic JNDI tree naturally, and he figured out how to use WebLogic JMS messging bridge to re-send single-threaded AQ JMS messages to clustered JMS queues, which allow concurrent message assumption by multiple instances of MDB's. My impression is that he is using that setup in a production environment.
    I am sure you are aware of it but I would like to make it clear - in order to use AQ as a foreign JMS provider to WebLogic-hosted MDB's, you don't need to update your database to Oracle 10g - Oracle 8i is good enough (although I recommend at least 9i Release 2). It is not the database engine, but rather the aqapi.jar JMS wrapper on top of AQ that matters. I do recommend that you use aqapi.jar from Oracle Application Server 10.0.3 or up for better XA support, among other things. Again, you don't have to replace WebLogic with Oracle AS - you only need a single jar file from it and put it in your WebLogic's classpath. However, I don't know what this means from a licensing point of view if you ever go to production - do you have to pay the full price of OracleAS or OC4J just to use the aqapi.jar?
    In the coming days I will test the latest aqapi.jar to see how much progress Oracle has made in terms of making their J2EE products more spec-compliant :-).
    Hope the above gives you a different perspective.
    Eric

  • Reg: Is it possible in weblogic 5.1 or 6 to get Transaction suport for MQseries & Oracle

              Hi
              I would like to know whether weblogic 5.1 or 6 provides support in a single transaction,
              transaction support for both oracle and MQseires, if so where can i find suitable
              documentation on this topic
              with regards
              Priya
              

    The answer is definitely yes, starting in WLS 6.0, with
              some two reasonable limitations.
              There are limitations are the following:
              1. It must be on the server side. The registration of the XAResource
              can't happen in a client. It must happen in a startup class
              or EJB or servlet, etc. You can start it from a client (invoke
              an EJB or servlet) but the resource work must be
              on the server side.
              2. MQSeries can't be included if it is being used to drive a
              Message Driven Bean. Because the message is passed
              from MQ Series to WLS outside of a transaction, after
              which WLS will start a transaction (if so configured) and
              pass it to the MDB, the MQ Series message is not part
              of the transaction. The JavaSoft specs don't handle this case.
              For WLS JMS, this works because we have defined such
              an interface and implemented it. At least one other vendor
              understands the importance of having this feature and is
              interested in implementing it (it's not IBM).
              So to do what you want, it is necessary to:
              1. Use the XAResource version of the JDBC driver for Oracle.
              WLS is smart enough to look at the driver and see if it
              implements the XAResource interface and automatically
              register it as a resource. This has been documented
              in this newsgroup already or see
              http://e-docs/wls/docs60/adminguide/jdbc.html#1075694.
              2. Register the XAResource interface for MQSeries programmatically
              in the application. The code to do this has been posted
              at the BEA developer site for a few months in an article
              entitled "Using JTA Transactions to envelope WLS JMS and
              IBM MQSeries" (could I be more explicit), located at
              http://developer.bea.com/docs/jmsjta.jsp. It references
              another document that has more code, describing how to
              plug in a "foreign" (non-WLS) JMS provider, of which MQSeries
              is one, in a non-transaction manner (you need to do that
              first and then just add the resource registration) - see
              http://developer.bea.com/docs/jmsproviders.jsp.
              All of the necessary code is included in the documents (including
              how to download and install the Java libraries for MQSeries).
              Several people have told me that they have been able to
              use this as a starting place for their applications.
              You might also want to look at the JMS FAQ at
              http://developer.bea.com/docs/jmsfaq.jsp.
              In 6.1, support is added for importing foreign transactions.
              That means that in 6.0, WLS can drive a transaction with
              WLS JMS, Oracle, and MQ series, with WLS being the
              driving force. In WLS 6.1, a non-WLS transaction manager can
              drive a transaction that includes (transactionally infects)
              WLS resources (like WLS JMS).
              There are no white papers that I know of in this area and I haven't
              tested it myself (the goal is to have someone try out
              having WebSphere drive a transaction with WLS resources, soon).
              "Priya" <[email protected]> wrote in message news:[email protected]...
              >
              > Hi
              >
              > I would like to know whether weblogic 5.1 or 6 provides support in a single transaction,
              > transaction support for both oracle and MQseires, if so where can i find suitable
              > documentation on this topic
              >
              > with regards
              > Priya
              

  • Looking for JAR files for AQ JMS

    Hello all,
    I installed Oracle 9i 9.2.0.1 and trying to run a
    JMS Sample that uses JMS oracle.jms.AQjmsQueueConnectionFactory
    and oracle.jms.AQjmsSession. My questions which jar
    files should be included in the CLASSPATH.
    thanks

    The jar file you need is called aqapi.jar.

  • Unable to resolve 'oracle.j2ee.ws.server.async.DefaultRequestQueue'

    Hi
    When executing import/export service through FSM we are getting below error on server console. Can someone please help us to resolve this.
    <Nov 22, 2012 10:25:14 PM IST> <Error> <oracle.j2ee.ws.common.jaxws.JAXWSMessages> <BEA-000000> <[MessageID: uuid:3eac9f32-ad81-4d96-b5b2-18cf0fd887c0[migRequestId=300100015300332][migObjectId=300100015300326][]] Could not send async request message to the JMS queue.
    java.security.PrivilegedActionException: javax.naming.NameNotFoundException: Unable to resolve 'oracle.j2ee.ws.server.async.DefaultRequestQueue'. Resolved 'oracle.j2ee.ws.server.async'; remaining name 'DefaultRequestQueue'
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:373)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
    at weblogic.security.Security.runAs(Security.java:61)
    at oracle.security.jps.wls.jaas.WlsActionExecutor.execute(WlsActionExecutor.java:51)
    at oracle.security.jps.internal.jaas.CascadeActionExecutor.execute(CascadeActionExecutor.java:56)
    at oracle.j2ee.ws.server.provider.GenericProviderPlatform.runAs(GenericProviderPlatform.java:365)
    at oracle.j2ee.ws.server.jaxws.JMSChannel.getConnection(JMSChannel.java:468)
    at oracle.j2ee.ws.server.jaxws.JMSChannel.sendMessage(JMSChannel.java:235)
    at oracle.j2ee.ws.server.jaxws.JMSChannel.sendRequest(JMSChannel.java:199)
    at oracle.j2ee.ws.server.jaxws.AsyncServiceRuntimeDelegate$JMSMessageQueue.send(AsyncServiceRuntimeDelegate.java:170)
    at oracle.j2ee.ws.server.jaxws.AsyncServiceRuntimeDelegate.pro
    Caused By: javax.naming.NameNotFoundException: Unable to resolve 'oracle.j2ee.ws.server.async.DefaultRequestQueue'. Resolved 'oracle.j2ee.ws.server.async'; remaining name 'DefaultRequestQueue'
    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.BasicNamingNode.lookup(BasicNamingNode.java:214)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
    FYI:
    The "oracle.jrf.ws.async_template_11.1.1.jar" jar file required for JMS (oracle.j2ee.ws.server.async.) which is present in below directory path of weblogic standalone.
    Edited by: user12820425 on Dec 2, 2012 11:56 PM

    Are you using Standalone (or) Integrated WLS. It works only on Standalone WLS.
    Also for these issues, please put this in Cross Pillar Integration Forum. Contact Ning.Dong

  • How to intergrate oracle workflow with oc4j or weblogic?

    tks a lot

    Perhaps the easiest and most straight forward is using JMS, Oracle Advanced Queuing supports JMS, and you can use AQ messages to start or continue workflows, and workflow can publish messages to AQ.
    tks a lot

  • Deploying 1 jar file in 2 diferent domains

    Hi,
    We have a requirement where single BPEL code needs to be deployed in 2 domains.Inside teh domains , we are going to chnage the configuraion of JMS, Oracle Db etc .But the JNDI names will be same accross the 2 domains and in the BPEL process we used this common JNDI name.I careted a doamin (Let assume domain1) and deployed my application after configuring the JNDI names for JMS and DB.My application deployed successfully and worked as expected.Now, I craeted 2nd domain and tried to use the same JNDI name with diffrent Database configurations.But when I tried to update, it says JNDI name already exist.Could you please advice me if I need to modify anything in my doamin?
    Also, when I tried to open my emanager with domain2 configurations, I can see the BPEL process which I deployed in domain1 .why is my 2nd domain showing the deployment under domain1 though I din't deployed anything in 2nd domain.
    Thanks Much,
    Madhuri

    You want it in a WAR file, not a JAR file - i.e. a zip file just like a JAR file but with a .war extension and the following path structure:
    ./WEB-INF/classes
    ./WEB-INF/lib
    ./WEB-INF/web.xml
    Where your JARs go in the lib directory, plain classes in their package structure under the classes directory and your JSPs, HTML etc anywhere you like other than WEB-INF.
    Then you just put the WAR in Tomcat/webapps.

  • Can we use OJMS in OC4J 10.1.3?

    Thanks

    Hello,
    Yes you can use the different Oracle JMS providers in the 10.1.3 release of OC4J; meaning Oracle JMS/AQ JMS , OracleAS Middle tier JMS. You can choose it based on the quality of service you want for your messages (database, file or memory based)
    Regards
    Tugdual Grall

  • Thread bottleneck?

    Hi -
              We have an application that is loading tens of thousands of xml messages
              into a JMS queue backed by Oracle, and committing every 100. MDB's pick up
              from that queue and start their own UserTransactions managing from the
              stateless on. We're doing this to achieve execute concurrency in the
              container even tho it is a batch application. It also will allow us to
              handle near-realtime requests later using the same mechanism. (We know
              we're really done with the load by monitoring the number of rows in the JMS
              Oracle queue -- are handling poisen messages by starting a UserTransaction
              in the MDBs and any that don't work get the container work rolled back, then
              written in a new trans to a table with a CLOB.) It's working fine -- but
              there is one place where the performance could be improved, I think.
              It looks like there is a thread bottleneck. When the 100 transactions are
              committed, only about 10 or so MDB's get to fire (about the number that are
              in the pool), but after that they wait again until the next commit to handle
              another 10 or so. Once the batch client finishes loading his thousands of
              messages into the Queue and closes, the MDBs take off at full steam and we
              get very good thruput.
              So it looks like there is a single (or very few) threads for the JMS server,
              and that they give priority to the JMS client doing the load and not to the
              MDBs that handle them. Even tho lots are commited, the MDBs only get a
              single shot at grabbing a few. Is there a way to tune this so that the
              MDBs can get a bigger slice of the pie while the JMS server is loading?
              The load seems to hog the JMS server.
              Thanks for any help,
              - Mark
              

    Bob -
              We are 6.1 SP2. Each message is a transaction when it gets inside of the
              container. We are committing every 100 because we synchronize a counter in
              case we need to restart, which works fine. But even without synchronizing
              that counter, the load behavior is the same.
              Since we have clustered servers, being able to have a queue and have
              multiple MDBs working on these transactions should increase our thruput
              because each transaction causes lots of database work to happen with of
              course a commit at the end of each unit of work. Also we wanted a
              message-based queueing solution for plugging in near-realtime workloads to
              the same system.
              Even tho the queue and JMS server are defined on one server, the MDBs launch
              fine on both clustered app servers. The theory is that two threads (and
              possibly several clustered boxes with multiple cpus) can wait on database IO
              almost as fast as one can. If the amount of database work is small and you
              have one cpu and you commit infrequently, then single-threading is
              definitely the way to go as you mention. We'll be doing variations on the
              load testing with MDBs very soon with different numbers of MDBs and servers.
              Unfortunately our test setup has the clusters defined on a single,
              multi-homed box so varying the servers won't be a good test. But we can
              easily throttle the MDBs. The MDBs seem to launch so that the same ones
              from the pool are launched as soon as there is work available even tho there
              are a larger number of them available -- that's good because you can easily
              track the workload. There seem to be about five active now at any given
              time between the two servers even tho a total of 20 are available.
              It's working fine and the performance is currently not an issue, but I was
              just questioning the way that the intial load to JMS behaves.
              Thanks,
              - Mark.
              "Bob Lee" <[email protected]> wrote in message
              news:B960628D.190E%[email protected]...
              > What SP are you using? Why does the client commit every 100 messages? Do
              > these 100 messages represent an atomic unit? If so, then why not combine
              > them into one message? It sounds to me like there could be some threaded
              > code issues here (code as opposed to resource allocation issues).
              >
              > Also, are the MDB's taking the data and inserting it in a database or
              > something? If so, I'd question the value of inserting the data
              concurrently.
              > Write a simple performance test program to prove this. The first test
              should
              > insert 1000 records sequentially. The second test can spawn 10 threads
              that
              > each insert 100 records. If the first tests performs close enough, I'd go
              > with a sequential solution as the resource overhead will be a lot lighter
              > and the coding can be simpler. Since you're using JMS, you don't have to
              > worry about clients blocking each other.
              >
              > Also, when you write the test, connect to the database directly as opposed
              > to accessing a DataSource running in WebLogic in another process. The
              > overhead of the excess remote access might affect the results.
              >
              > Let me know,
              > Bob
              >
              > On 7/20/02 8:57 AM, in article
              > r%[email protected], "Mark Cassidy"
              > <[email protected]> wrote:
              >
              > > Hi -
              > >
              > > We have an application that is loading tens of thousands of xml messages
              > > into a JMS queue backed by Oracle, and committing every 100. MDB's
              pick up
              > > from that queue and start their own UserTransactions managing from the
              > > stateless on. We're doing this to achieve execute concurrency in the
              > > container even tho it is a batch application. It also will allow us to
              > > handle near-realtime requests later using the same mechanism. (We know
              > > we're really done with the load by monitoring the number of rows in the
              JMS
              > > Oracle queue -- are handling poisen messages by starting a
              UserTransaction
              > > in the MDBs and any that don't work get the container work rolled back,
              then
              > > written in a new trans to a table with a CLOB.) It's working fine --
              but
              > > there is one place where the performance could be improved, I think.
              > >
              > > It looks like there is a thread bottleneck. When the 100 transactions
              are
              > > committed, only about 10 or so MDB's get to fire (about the number that
              are
              > > in the pool), but after that they wait again until the next commit to
              handle
              > > another 10 or so. Once the batch client finishes loading his thousands
              of
              > > messages into the Queue and closes, the MDBs take off at full steam and
              we
              > > get very good thruput.
              > >
              > > So it looks like there is a single (or very few) threads for the JMS
              server,
              > > and that they give priority to the JMS client doing the load and not to
              the
              > > MDBs that handle them. Even tho lots are commited, the MDBs only get a
              > > single shot at grabbing a few. Is there a way to tune this so that the
              > > MDBs can get a bigger slice of the pie while the JMS server is loading?
              > > The load seems to hog the JMS server.
              > >
              > > Thanks for any help,
              > > - Mark
              > >
              > >
              > >
              >
              

  • Add Jserver option

    Hi
    I'am working remote on a AIX 5.2 thru Putty with a Oracle 8.1.7.
    My problem is that I'am going to add Jsever to the db, but i can't start dbassist thru Putty, so is there any way I can do this without using dbassist?
    /Mikkel

    PURPOSE: ========= To assist with the manual installation of the Java Virtual Machine (JVM) into an 8.1.7 version database. Prior to the installation of the JVM, the "readme.txt" found in the ORACLE_HOME/javavm directory should be reviewed so that a broad understanding of the task can be understood. Multiple scripts will need to be run to enable full JVM functionality. All JVM related scripts must be run under the SYS AS SYSDBA account. This bulletin will provide the following pieces of information: SECTION A) The suggested resource settings needed for a successful JVM installation. SECTION B) The name and location of the scripts needed for a full JVM installaton where "full" is defined as all java-related functionality within the rdbms. A brief summary of the functionality added by each script will also be given in this section. SECTION C) Basic checks (queries) to be used to verify a successful JVM installation. SECTION D) Suggested reading material in order to gather a better understanding of the functionality that each script provides. NOTE: If the database was upgraded from an earlier version of 8i AND possessed the JVM from that previous 8i release, please see the 8.1.7 Migration manual in the official Oracle documentation for the steps needed to upgrade the JVM. SECTION A) RESOURCES: ======================== Rollback segment space- ---------------------- Allocate at least 100MB worth of rollback segment space for the JVM install, this is in addition to the rollback segment space allocated for any other activity on the database. System tablespace- ----------------- Combined, all of the scripts will consume approximately 130MB of free space in the system tablespace. The objects introduced by the initjvm.sql script will consume approximately 90MB of the system tablespace by itself. Shared_pool_size- ---------------- At least 50MB of free shared_pool space is needed. That is a minimum for the JVM installation. Java_pool_size- -------------- 30MB should be adequate for the installation. The pool sizes can be monitored by querying V$SGASTAT. Eg: SQL> select * from v$sgastat where name = 'free memory'; Please refer to Note:204935.1 for a script that will automatically check the system requirements of your database and inform you if it does not meet them. SECTION B) NAME, LOCATION, AND BRIEF DESCRIPTION OF THE JVM SCRIPTS: ======================================================================= ***INITJVM.SQL*** To execute- SQL>set echo on SQL>spool jvminst.log SQL>@?/javavm/install/initjvm.sql SQL>spool off Summary of the added functionality: ----------------------------------- The initjvm.sql script loads the initial set of Java classes necessary to support Java, it initializes the tables for supporting Java and for the CORBA namespace, and it publishes top-level entry points through call-specifications. The support Java classes include the following: The standard Java runtime Bytecode verifier and optimizer Java and SQLJ compilers JDBC runtime CORBA ORB and EJB runtime Some additional support classes, such as DBMS_JAVA, which are described in "Package DBMS_JAVA" The initjvm.sql script also performs the following actions: 1.Loads the classes to the SYS schema. 2.Creates public synonyms for the loaded classes to be accessible to all users. 3.Alters some of these classes to run with definer's rights to support CORBA callouts. 4.Defines database start up and shut down triggers. Additional sources of information: ---------------------------------- Oracle8i Java Developer's Guide The file, $ORACLE_HOME/javavm/readme.txt NOTE: If the initjvm.sql script fails to successfully complete for any reason, the JVM removal script (rmjvm.sql, found in the same location as the initjvm.sql script) MUST be run prior to another attempt at JVM installation. Additionally, after the JVM removal script has been successfully executed, the instance must be bounced prior to the next attempt to install the JVM via the initjvm.sql script. In short, there is no "moving forward" with a failed JVM installation, the only option is to remove and reinstall the JVM. Lack of resources (memory and space) are the most common culprits for a failed JVM installation so ensuring that there are no deficiencies in this regard will greatly improve the success rate of the installation. See "SECTION C" below for the sql statements used to check for installation success. ***INITXML.SQL*** To execute- SQL>set echo on SQL>spool initxml.log SQL>@?/oracore/admin/initxml.sql SQL>spool off Summary of added functionality: ------------------------------- This script loads xml components into the JServer. The XML Parser for PL/SQL makes developing XML applications with Oracle8i a simplified and standardized process. With the PL/SQL interface, Oracle shops familiar with PL/SQL can extend existing applications to take advantage of XML as needed. The XML Parser for PL/SQL supports the W3C XML 1.0 specification. Additional sources of information: ---------------------------------- Note:103872.1 XML Parser for Java Version 2 - Frequently Asked Questions Oracle8i Application Developer's Guide - XML ***CATXSU.SQL*** To execute- SQL>set echo on SQL>spool catxsu.log SQL>@?/rdbms/admin/catxsu.sql SQL>spool off Summary of added functionality: ------------------------------- This script loads the XMLSQL Utility (XSU) into the database. The utility serves to transform "relational" data to XML for purposes of communication. The XML-SQL Utility (XSU) provides a simple way of achieving data transformation, by mapping, canonically, any SQL query result to XML and vice versa. Additional sources of information: ---------------------------------- Note:120841.1 XML SQL Utility Oracle8i Application Developer's Guide - XML ***INIT_JIS.SQL*** To execute- SQL>set echo on SQL>spool init_jis.log SQL>@?/javavm/install/init_jis.sql SQL>spool off Summary of added functionality: ------------------------------- This is the script to install the Oracle Servlet Engine (OSE). The Oracle Servlet Engine works as a specialized Web server, designed as a scalable servlet server inside the Oracle8i database. The servlet classes are loaded into Oracle8i with a loadjava command and published in a namespace inside the database. A servlet runner handles HTTP requests, instantiates published servlets in sessions, and invokes servlet methods. Additional sources of information: ---------------------------------- Oracle8i Oracle Servlet Engine User's Guide Note:133391.1 Configuring Oracle Servlet Engine (OSE) for HTTP access to Oracle 8i Note:139639.1 HOW to Run Servlet in oracle servlet engine (OSE) through MOD_OSE ***JISJA.SQL*** To execute- SQL>set echo on SQL>spool jisja.log SQL>@?/javavm/install/jisja.sql SQL>spool off Summary of added functionality: ------------------------------- This script will turn on the JAccelerator (ncomp) for JIS. Adding this functionality will increase performance. JServer Accelerator, implemented within the ncomp tool, natively compiles all classes within the specified JAR, ZIP, or list of classes. JServer Accelerator natively compiles these classes and places them into shared libraries according to their package. Additional sources of information: ---------------------------------- Oracle8i Java Tools Reference Note:134985.1 JServer Accelerator and the NCOMP Utility. ***JISAEPHC.SQL*** To execute- SQL>set echo on SQL>spool jisaephc.log SQL>@?/javavm/install/jisaephc.sql SQL>spool off Summary of added functionality: ------------------------------- Adds the set of default end points to the server with hardcoded values for the admin service (after the OSE install). This script is for an installation default purpose only. It is advised that security conscious installations change these endpoint values with 'rmendpoint' and 'addendpoint' from the session shell. For an example, see section 3 of [NOTE:133391.1]. ***INITPLGS.SQL*** To execute- SQL>set echo on SQL>spool initplgs.log SQL>@?/rdbms/admin/initplgs.sql SQL>spool off Summary of added functionality: ------------------------------- This script loads the PLSQL Gateway Servlet jar files into the database. This allows for the running of PL/SQL stored procedures as servlets, (known as the embedded PL/SQL gateway). PL/SQL procedures can then run over the Web without any code changes or loading/publishing steps for each procedure. Additional sources of information: ---------------------------------- Oracle8i Oracle Servlet Engine User's Guide Note:132127.1 JAVA: How to Configure PL/SQL Servlets for Stateful Connections ***INITJSP.SQL*** To execute- SQL>set echo on SQL>spool initjsp.log SQL>@?/jsp/install/initjsp.sql SQL>spool off Summary of added functionality: ------------------------------- This script installs the ORACLE Java Server Pages (JSP) Functionality. Excerpt taken from the Oracle JavaServer Pages Developer's Guide and Reference... JavaServer Pages(TM) is a technology specified by Sun Microsystems as a convenient way of generating dynamic content in pages that are output by a Web application (an application running on a Web server). This technology, which is closely coupled with Java servlet technology, allows you to include Java code snippets and calls to external Java components within the HTML code (or other markup code, such as XML) of your Web pages. JavaServer Pages (JSP) technology works nicely as a front-end for business logic and dynamic functionality in JavaBeans and Enterprise JavaBeans (EJBs). JSP code is distinct from other Web scripting code, such as JavaScript, in a Web page. Anything that you can include in a normal HTML page can be included in a JSP page as well. In a typical scenario for a database application, a JSP page will call a component such as a JavaBean or Enterprise JavaBean, and the bean will directly or indirectly access the database, generally through JDBC or perhaps SQLJ. A JSP page is translated into a Java servlet before being executed (typically on demand, but sometimes in advance), and it processes HTTP requests and generates responses similarly to any other servlet. JSP technology offers a more convenient way to code the servlet. Furthermore, JSP pages are fully interoperable with servlets--JSP pages can include output from a servlet or forward to a servlet, and servlets can include output from a JSP page or forward to a JSP page. Additional sources of information: ---------------------------------- Oracle Java Server Pages Developer's Guide and Reference Note:121766.1 Oracle 8.1.7 (Release 3) New features Summary ***JSPJA.SQL*** To execute- SQL>spool jspja.log SQL>@?/jsp/install/jspja.sql SQL>spool off Summary of added functionality: ------------------------------- This script loads the JAccelerator classes for the JSP functionality. Jaccelerator allows for native compilaton of java code. Additional sources of information: ---------------------------------- Oracle8i Java Tools Reference Release 3 ***INITPLSJ.SQL*** To execute- SQL>spool initplsj.log SQL>@?/rdbms/admin/initplsj.sql SQL>spool off Summary of added functionality: ------------------------------- Initializes the Java library needed by PL/SQL Additional sources of information: ---------------------------------- Oracle8i Java Stored Procedures Developer's Guide Oracle8i Java Developer's Guide ***INITJMS.SQL*** To execute- SQL>spool initjms.log SQL>@?/rdbms/admin/initjms.sql SQL>spool off Summary of added functionality: ------------------------------- This script is used to load AQ/JMS jar files into the database. Oracle Java Messaging Service (JMS): Oracle Java Messaging Service provides a Java API for Oracle8i Advanced Queuing based on the JMS standard. Oracle JMS supports the standard JMS interfaces and has extensions to support the AQ administrative operations and other AQ features that are not a part of the standard. Additional sources of information: ---------------------------------- Oracle8i Application Developer's Guide - Advanced Queuing Release 2 (8.1.6) Oracle8i Supplied Java Packages Reference Release 3 (8.1.7) Note:112928.1 An overview of JMS in 8.1.6 ***INITREPAPI.SQL*** To execute- SQL>spool initrepapi.log SQL>@?/rdbms/admin/initrepapi.sql SQL>spool off Summary of added functionality: ------------------------------- This script loads RepAPI server classes and publishes the 'repapi' objects. $ORACLE_HOME/rdbms/jlib/repapi_s.jar is loaded to the database. Loading this file is required for Java RepAPI Server side functionality. The RServer.class and its helper class are published in /etc namespace. RepAPI is a runtime library that enables clients to replicate data with Oracle servers. Additional sources of information: ---------------------------------- Oracle8i Replication Release 2 (8.1.6) ***INITSOXX.SQL*** To execute- SQL>spool initsoxx.log SQL>@?/rdbms/admin/initsoxx.sql SQL>spool off Summary of added functionality: ------------------------------- This script loads objects, extensibility and xml related java classes into the database. Additional sources of information: ---------------------------------- Oracle8i Application Developer's Guide-XML Oracle 8i Data Cartridge Developer's Guide Release 2 (8.1.6) ***JISAEP.SQL*** To execute- The following is an example. SQL>spool jisaep.log SQL>@?/javavm/install/jisaep admin 8080 9090 SQL>spool off Summary of added functionality: ------------------------------- This script configures the OSE default admin Web Service. Uses the shell to add the two default endpoints for the predefined services. It requires two or three arguments: 1) Name of the service 2) Plain TCP port number to use 3) SSL port number to use Additional sources of information: ---------------------------------- Oracle8i Migration Release 3 (8.1.7) Oracle8i Oracle Servlet Engine User's Guide Release 3 (8.1.7) SECTION C) POST-INSTALLATION CHECKS / CONFIRMATION OF SUCCESSFUL EXECUTION(S): ================================================================================ On a freshly created database (or a database having just catalog.sql and catproc.sql run upon it) there should be no "java objects" within the database. The "java objects" being identified by a query of DBA_OBJECTS where OBJECT_TYPE like 'JAVA%'. The java-related scripts mentioned within this bulletin will install both java objects and generic database objects such as indexes, functions, and views etc. The most critical script of the list in "SECTION B" is the initjvm.sql script. After an execution of that script a count of the java related objects should be performed. NOTE: The numbers of objects given in the samples below is approximate, and may not exactly match your results. Use the numbers for APPROXIMATION ONLY, and remember that having zero invalid JAVA objects is the other important test. The intent is to show that the running of all jvm-related scripts will yield significantly more java objects than running initjvm.sql by itself. The KEY is to ensure that no java objects are invalid after the installation.      select count(*) from DBA_OBJECTS where OBJECT_TYPE like 'JAVA%';      This should return a count of 6785.      None of them should be invalid....      select count(*) from DBA_OBJECTS where OBJECT_TYPE like 'JAVA%' and STATUS = 'INVALID'; If the count is smaller than the one mentioned in the first query OR if there are invalids returned from the second query, it would be worthwhile to investigate any errors in the spooled log and/or the alert log before proceeding with the rest of the JVM installation. An itemized breakdown of the objects added by each script will now be provided. A count from DBA_OBJECTS where OBJECT_TYPE like 'JAVA%' will be given after the execution of the initjvm.sql script, and again, after the execution of the final script. INITJVM.SQL CREATES: -------------------- 3 functions 4 indexes 6438 java classes 290 java data 57 java resources 6 packages 1 sequence 6443 synonyms 8 tables 2 triggers 3 views SQL> select count(*), object_type from dba_objects where object_type like 'JAVA%' group by object_type; 6438 JAVA CLASS 290 JAVA DATA 57 JAVA RESOURCE ------------------- 6785 INITXML.SQL CREATES: -------------------- 2 indexes 272 classes 31 java resources 1 lob 19 packages 272 synonyms 2 tables     CATXSU.SQL CREATES: ------------------- 29 classes 30 java resources 3 packages 3 synonyms INIT_JIS.SQL CREATES: --------------------- 12 indexes 2384 classes 10 java resources 1 lob 13 packages 5 sequences 2400 synonyms 17 tables 1 trigger 1 view JISJA.SQL CREATES: ------------------ 154 classes 8 java sources 1 procedure 3 tables JISAEPHC.SQL CREATES: --------------------- No new objects...... INITPLGS.SQL CREATES: --------------------- 1 class 1 synonym INITJSP.SQL CREATES: -------------------- 275 classes 2 java resources 275 synonyms JSPJA.SQL CREATES: ------------------ 20 classes INITPLSJ.SQL CREATES: --------------------- 2 classes INITJMS.SQL CREATES: -------------------- 159 classes 159 synonyms INITREPAPI.SQL CREATES: ----------------------- 71 classes 71 synonyms INITSOXX.SQL CREATES: --------------------- 37 classes 37 synonyms JISAEP.SQL CREATES: ------------------- No new objects..... TOTALS AFTER THE EXECUTION OF ALL SCRIPTS: ------------------------------------------ SQL>select count(*) from dba_objects where object_type like 'JAVA%' and owner = 'SYS'; COUNT(*) ---------- 10270 SQL>select count(*) from dba_objects where object_type like 'JAVA%' and status = 'INVALID' and owner = 'SYS'; COUNT(*) ---------- 0 SECTION D) SOURCES OF JVM-RELATED DOCUMENTATION: ==================================================== Separate hardcopy and on-line documentation are provided for the major Java-related components of this release. The online documentation for the later version of 8i and the current version of 9i have been greatly enhanced. There now exists a search utility available on http://technet.oracle.com. The search tool allows for keyword searches within the span of the official Oracle documentation for 8.1.7 and 9i. Additionally, this is the same search utility found on http://tahiti.oracle.com/pls/tahiti/tahiti.homepage - Oracle8i Java Developer's Guide - Oracle8i Java Tools Reference - Oracle Java Server Pages Developer's Guide and Reference - Oracle8i Enterprise JavaBean Developer's Guide and Reference - Oracle8i CORBA Developer's Guide and Reference - Oracle8i Oracle Servlet Engine User's Guide - Oracle8i JDBC Developer's Guide and Reference - Oracle8i SQLJ Developer's Guide and Reference - Oracle8i JPublisher User's Guide - Oracle8i Java Stored Procedures Developer's Guide - Oracle8i Application Developer's Guide-XML - Oracle8i Application Developer's Guide - Advanced Queuing - Oracle8i Supplied Java Packages Reference Release 3 (8.1.7) Other References [NOTE:175472.1]How to Cleanup the JVM in 8.1.7
    Joel P�rez

  • 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

  • Oracle AQ to JMS Queue which is on Oracle Application server

    Hi,
    I am using Oracle Streams AQ Oracle database 10g
    and i have a JMS Queue on oracle Application server.
    how i can Propagate message from Oracle AQ (AQ$_JMS_TEXT_MESSAGE)Queue to JMS Queue. ?
    Thanks,
    Satnani

    Hi Justin,
    Thanks for Reply, but in my case my JMS queue is on Oracle Application Server.
    and i want to propagate message from AQ to JMS queue.
    and none of the document is available to describe how to send message from oracle database AQ to JMS queue which is on application server.
    please help
    Thanks,
    Satnani

Maybe you are looking for

  • I'm using matchbook pro and I'm unable to find iPhoto after upgrading to Maverick os

    I'm using matchbook pro and I'm unable to find iPhoto after upgrading to Maverick os

  • ITunes 10.7 install wants to move my music library.

    I need to upgrade iTunes 10.6 on my Windows 7 Lenovo T420 laptop to 10.7 to use my new iPod Classic (replaces my iPod video), and I'm not yet ready to accommodate the changes in iTunes 11. My iTunes music data files have been moved to a large partiti

  • Trouble finding Color of Pixel

    Hello all, I've put together a program which, should return "Success!" if the color if a pixel is equal to the value supplied in an if statement. The values are exactly the same, retrieved from the same pixel, but still when I run the program, the pr

  • What's the point...???

    Since installing Snow Leopard and it's update to 10.6.1, nothing has worked right. All my applications are crashing including Photoshop CS3 and Microsoft Word and Entourage, the printers won't work properly, my scanner just don't wanna know and can't

  • Does CS5 work on Yosemite

    does CS5 work on Yosemite