Advanced Queuing in Oracle Forms
Hello! I'm trying to use the Advanced Queuing in Oracle Forms. I do it, that's for this manual:
http://st-curriculum.oracle.com/obe/forms/11g/formschataq/formschataq.htm
All objects created in the database successfully! However, in the section "Building the Forms Application to Interact with AQ", My form does not catch the event. Trigger WHEN-EVENT-RAISED in "Event" not called. The same thing happens when testing forms for chat.
Who have successfully used the "Advanced Queuing", tell me please, this example is correct? If no, can give a correct example? If yes, Maybe I did not set any settings?
I use Forms 1.1.2
Thank you!
Michael Ferrante (Oracle) wrote:
Enable at least level 2 tracing in the console. You should see an exchange occur every 2 seconds (2000ms). If you do not see this then your MAX_WAIT is not being read. To enable trace level 2, open the console and left click in the text area of it. Then press the number 2 on the keyboard just above the letters Q and W. Do not use the number pad, as this will not work.If enable Level 2 in JavaConsole, nothing is written there. However, when the level 3, then every 2 seconds is displayed in the console this line:
network: Connecting http://localhost:7001/forms/lservlet;jsessionid=LvhyQ0QNg5KkJ17vnch3pQSMT6Z00B16yVr7m64npFKTKp1pBBjv!656070063 with proxy=DIRECTI changed the file formsfeb.cfg, set MaxEventWait = 5000. All restart, And a similar message is displayed every 5 seconds in the console.
network: Connecting http://localhost:7001/forms/lservlet;jsessionid=r31zQ0TLpHxK3kjBqMBk0tvYf9hn6wn6sGpKRppTvSX1f70pv0GS!571608984 with proxy=DIRECT
network: Connecting http://localhost:7001/ with proxy=DIRECT
Similar Messages
-
Queries on Advanced Queuing in Oracle Database
Hi All,
We are new to Advanced Queuing.
We have a requirement wherein we need to implement Oracle AQ.
However upon some R&D, we got the basic idea of AQ.
But we would like to know on a broad level,
i. The Purpose of enabling/Using AQ
ii. Basic understanding on the different components of AQ like Creating Payload, Enqueue, Dequeue messages
iii. Some high level understanding of the API’s – Which to use when and the purpose
iv. Challenges faced
v. Possible issues and Resolutions.
If anyone can help us with the above questions, it would be of great help.
Regards,
ShrutiMichael Ferrante (Oracle) wrote:
Enable at least level 2 tracing in the console. You should see an exchange occur every 2 seconds (2000ms). If you do not see this then your MAX_WAIT is not being read. To enable trace level 2, open the console and left click in the text area of it. Then press the number 2 on the keyboard just above the letters Q and W. Do not use the number pad, as this will not work.If enable Level 2 in JavaConsole, nothing is written there. However, when the level 3, then every 2 seconds is displayed in the console this line:
network: Connecting http://localhost:7001/forms/lservlet;jsessionid=LvhyQ0QNg5KkJ17vnch3pQSMT6Z00B16yVr7m64npFKTKp1pBBjv!656070063 with proxy=DIRECTI changed the file formsfeb.cfg, set MaxEventWait = 5000. All restart, And a similar message is displayed every 5 seconds in the console.
network: Connecting http://localhost:7001/forms/lservlet;jsessionid=r31zQ0TLpHxK3kjBqMBk0tvYf9hn6wn6sGpKRppTvSX1f70pv0GS!571608984 with proxy=DIRECT
network: Connecting http://localhost:7001/ with proxy=DIRECT -
Advanced Queuing for Oracle / Dequeue failed
Hi *,
I'm using Oracle Advanced Queuing and OC4J with some MDBs. Unfortunately sometimes I have following exception:
03-05-21 10:29 Error listening to 'USER_QUEUE'
oracle.jms.AQjmsException: JMS-120: Dequeue failed
at oracle.jms.AQjmsError.throwEx(AQjmsError.java:283)
at oracle.jms.AQjmsConsumer.dequeue(AQjmsConsumer.java:2034)
at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:981)
at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:918)
at oracle.jms.AQjmsConsumer.receive(AQjmsConsumer.java:834)
at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:905)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:797)
at java.lang.Thread.run(Thread.java:479)
All messages hang in my queue with READY state. I really don't know what is happening.
I have observed that when I run my MDB, but on the different machine, one message is consumed and the same exception arises.
Why Oracle cannot run dequeue process correctly?
best regards
MaciekWe had similar problems. Mostly the cause was incorrect message type (other than AQ$_JMS..., i. e. ancestor of "message" class) or incorrectly filled body of a message. For example, there seems to be a bug in AQ$_JMS_TEXT_MESSAGE object: you have to set at least one of varchar2 or CLOB in body of message. Otherwise, dequeue will fail, JMS assumes there is some text inside.
We are using 8i and 9i databases and messages are created using plain constructors (not methods from 9i, since code has to run on either version). I cannot recall any troubles using methods from 9i during researching, but there might be a bug somewhere.
Myrra -
Why we use advanced quques in Oracle?
They have many uses, so you would be recommended to consult (as you always should) the documentation, starting with this overview in the Concepts manual, and following relevant links from there.
Note that you should modify your forum profile with a better handle than "836001", and post any subsequent follow-up questions in the appropriate +{forum:id=66}+ forum rather than here, which is a resource for Application Express (APEX). -
Oracle advanced queue 11G 11.2.0.x
Hi
Do we need extra license for using advanced queuing on Oracle 11G EE
http://en.wikipedia.org/wiki/Oracle_Advanced_Queuing
ThanksThere are various limitations in oracle express edition for licensing you can refer to below url
http://docs.oracle.com/cd/E17781_01/license.112/e18068.pdf -
Hi,
I would like to know, how can I create Oracle Advanced Queues using Oracle 10g Enterprise Manager console/s.
Thanks.Hi! I'm not a dev, but I know for sure ODP.NET does not support AQ. You might wanna have a look at Oracle Object for OLE (OO4O). It supports AQ and can be used in both VB.NET and C# through COM Interop. Of course, the performances will not be as good as ODP.NET tho.
Have a nice one.
Mathieu Gauthier
Development Team
JCMB Technology Inc -
Hi,
I am new to Oracle Advanced queuing. I have a question.
After enqueue operation, the message can be retrieved by dequeue operation.
But, why do we need SCHEDULE_PROPAGATION ?
Do we use that when we are sending it to a totally differnt queue in someother remote database ?
Thanks,
Message was edited by:
user448390Do we use that when we are sending it to a totally
differnt queue in someother remote database ?yes, partly true...SCHEDULE_PROPAGATION is used when we schedule propagation of messages to a destination identified by a Database Link.
DBMS_AQADM.SCHEDULE_PROPAGATION (
queue_name IN VARCHAR2,
destination IN VARCHAR2 DEFAULT NULL,
start_time IN DATE DEFAULT SYSDATE,
duration IN NUMBER DEFAULT NULL,
next_time IN VARCHAR2 DEFAULT NULL,
latency IN NUMBER DEFAULT 60,
destination_queue IN VARCHAR2 DEFAULT NULL);
destination_queue -- Name of the target queue to which messages are to be propagated in the form of a dblink.
Messages may also be propagated to other queues in the same database by specifying a NULL destination. If a message has multiple recipients at the same destination in either the same or different queues, the message is propagated to all of them at the same time.
Hope this will help..
Thanks -
FORMS APEX communication through Advanced Queuing
Hi there,
I have to prepare a proof of concept for an APEX application and the customer asked me if it is possible to establish a communication between FORMS and APEX besides using an URL call.
Would the usage of Advanced Queuing be a good practice for this asynchronous communication?
Regards
Tareq.AQ will work on the Forms side, but not (or very complex) on the APEX side, because APEX is stateless (so no DB connection) and uses session pooling (you can hav another DB session for every roundtrip).
But maybe this will help:
http://roelhartman.blogspot.com/2008/11/integrate-oracle-forms-with-apex.html
http://roelhartman.blogspot.com/2009/10/forms-apex-integration-video.html
http://roelhartman.blogspot.com/2009/10/integration-of-forms-and-apex-calling.html -
Error when connect to Advanced Queuing Oracle
Dear sir,
I'm using intellij IDE write one a class java to connect Advanced Queuing, my code follow :
queueConnectionFactory = AQjmsFactory.getQueueConnectionFactory("host", "sid", 1521, "thin");
queueConnection = queueConnectionFactory.createQueueConnection("usernamer", "password");
but program have error : "Exception in thread "main" oracle.jms.AQjmsException: ORA-00604: error occurred at recursive SQL level 1
ORA-01882: timezone region not found".
I try connect this schema by "sql developer", i receive same error. i change file sqldeveloper.conf, put line - AddVMOption -Duser.timezone="+07:00" then sql developer work fine.
I download tzupdater-1.3.40-2011h and run "java -jar tzupdater.jar -u" and "java -jar tzupdater.jar -f" but app not run.
can you have me. i need complete this app.Post the stack trace
-
Propagation between queues in Oracle Advanced Queuing
We would like to connect two queues that reside in different database schemas/instances.
We try to use the propagation feature of Oracle to achieve this.
The queue-type is the same for both queues.
Enqueuing is done with a recipient list in order to set multiple local subscribers for the messages that are put onto the queue.
We would like to propagate between queues without changing the applications that write to originating queue and the other applications that read from the target queue.
During our research we only found ways where we need to change the application that writes onto the queue, which is not acceptable for us. Also the list of subscribers needs to be different based on the message.
Therefore I have the following question:
- is there a way to set up propagation between queues in a way where we don't need to modify the sending application?
- if not, is there a different way to connect two queues via a subscriber/consumer?Oracle8i for Linux does have AQ, although I haven't evaluated it
yet. If you're still having trouble with the install, make sure
you get the patch. A quicker and easier way to get Oracle8i up
cheaply for evaluation is to download the NT version. I'm
evaluating Oracle8i for both Linux and NT and the NT version is
more stable.
I would really appreciate hearing about your experiences with AQ
on Oracle8 (8.0.4.3). I have several projects that we have been
considering using AQ with. Please send me an email and tell me
what problems / work-arounds you found.
Christian Schroeder (guest) wrote:
: Hello,
: I still haven't managed to install 8i completely
: (files with zero-length, wrong permissions, wrong JVM, ...),
: anyway... -))
: We are using Oracle Advanced Queuing under 8.0.4.3 on AIX in
: a project at my company and I wondered if AQ is in 8i for
Linux?
: I really would like to evaluate it at home, since the AIX
: AQ version has some bugs and restrictions which I really need
to
: get around.
: My idea is to get 8i for AIX, but I wouldn't buy it if the
: queuing is still unstable.
: The 8.0.4 documentation states that one will get AQ in the
: Enterprise Edition with message-type 'RAW' and the Objects
Option
: will add full functionality if also purchased. I didn't find
: any comments on AQ in the installation guide.
: Regards,
: Christian
null -
Oracle Advanced Queuing - Propagation problem - 11g
Hi,
I have a problem when propagation messages between queues. When the message is propagated, it stays on the source queue with READY state.
I have created two queues on 11g with a propagation rule that any message from queue A are sent to queue B. My problem is that the message from the source queue stays in the source queue even after propagation, which isn't what I was expecting. The problem doesn't occur if the queues are on a different database. This problem only happens if the queues are on the same database.
the script I use is this:
For USERB (which has the destination queue)
create type EVENT_MESSAGE as object (
eventsource VARCHAR2(30),
eventname VARCHAR2(255),
eventid NUMBER(19,0),
message CLOB
DECLARE
an_agent sys.aq$_agent;
BEGIN
-- create the publish/subscribe queue table
dbms_aqadm.create_queue_table(
queue_table => 'DESTINATION_QUEUE_TABLE',
queue_payload_type=>'EVENT_MESSAGE',
sort_list => 'ENQ_TIME',
message_grouping => DBMS_AQADM.NONE,
multiple_consumers=>true
-- create the queue
dbms_aqadm.create_queue(
queue_name => 'DESTINATION',
queue_table => 'DESTINATION_QUEUE_TABLE',
queue_type => DBMS_AQADM.NORMAL_QUEUE,
max_retries => 5
dbms_aqadm.create_aq_agent(agent_name =>'DEQUEUE_AGENT');
an_agent := sys.aq$_agent('DEQUEUE_AGENT', null, null);
dbms_aqadm.enable_db_access(
agent_name => 'DEQUEUE_AGENT',
db_username => 'USERB'
dbms_aqadm.add_subscriber(
queue_name => 'DESTINATION',
subscriber => an_agent,
queue_to_queue => FALSE,
delivery_mode => DBMS_AQADM.PERSISTENT
-- start the queues
dbms_aqadm.start_queue('DESTINATION');
END;
For USERA
create type EVENT_MESSAGE as object (
eventsource VARCHAR2(30),
eventname VARCHAR2(255),
eventid NUMBER(19,0),
message CLOB
BEGIN
-- create the publish/subscribe queue table
dbms_aqadm.create_queue_table(
queue_table => 'SOURCE_QUEUE_TABLE',
queue_payload_type=>'EVENT_MESSAGE',
sort_list => 'ENQ_TIME',
message_grouping => DBMS_AQADM.NONE,
multiple_consumers=>true
-- create the queue
dbms_aqadm.create_queue(
queue_name => 'SOURCE',
queue_table => 'SOURCE_QUEUE_TABLE',
queue_type => DBMS_AQADM.NORMAL_QUEUE,
max_retries => 5
-- start the queues
dbms_aqadm.start_queue('SOURCE');
-- create the propagation
dbms_aqadm.add_subscriber(queue_name => 'SOURCE',
subscriber => sys.aq$_agent('DEQUEUE_AGENT','USERB.DESTINATION',null),
queue_to_queue => true);
dbms_aqadm.schedule_propagation(queue_name => 'SOURCE',
start_time => sysdate,
latency => 25,
destination_queue => 'USERB.DESTINATION');
END;
When I enqueue a message to the source on USERA with this:
declare
rc binary_integer;
nq_opt dbms_aq.enqueue_options_t;
nq_pro dbms_aq.message_properties_t;
datas EVENT_MESSAGE;
msgid raw(16);
begin
nq_pro.expiration := dbms_aq.never;
nq_pro.sender_id := sys.aq$_agent('ENQUEUE_AGENT', null, null);
datas := AGEAS_EVENT_MESSAGE('message','eventname',1,null);
dbms_aq.enqueue('SOURCE',nq_opt,nq_pro,datas,msgid);
end;
The message is propagated to the destination queue, no problem, but the message state on the source queue is kept as ready. I would have expected it to be marked as processed and disappear from the queue table.
When I look at the AQ$_SOURCE_QUEUE_TABLE_S the I see these records:
QUEUE_NAME NAME ADDRESS PROTOCOL SUBSCRIBER TYPE
SOURCE (null) "USERB"."DESTINATION"@AQ$_LOCAL 0 1736
SOURCE DEQUEUE_AGENT "USERB"."DESTINATION" 0 577
Can anyone help?I was talking about following oracle documentations:
Oracle Database 11g: Advanced Queuing (Technical Whitepaper)
Streams Advanced Queuing: Best Practices (Technical Whitepaper)
Oracle Streams Advanced Queuing and Real Application Clusters: Scalability and Performance Guidelines (Technical Whitepaper)
They are available at.. http://www.oracle.com/technetwork/database/features/data-integration/default-159085.html -
Problems with Oracle JMS Advanced Queuing
Hello,
We have build an application using Advanced Queuing (database version 10.2.0.1.0). Everything works fine using PL/SQL. But when we try to send in messages through the Oracle JMS interface messages with less then 4000 bytes are stored in the queu table but the content of the message is not stored in one of the user data attributes.
Messages larger then 4000 bytes result in the following error:
oracle.jms.AQjmsException: JMS-204: Er is een fout opgetreden in de AQ JNI-laag.
at oracle.jms.AQjmsError.throwEx(AQjmsError.java:311)
at oracle.jms.AQjmsProducer.enqueue(AQjmsProducer.java:1323)
at oracle.jms.AQjmsProducer.send(AQjmsProducer.java:692)
at oracle.jms.AQjmsProducer.send(AQjmsProducer.java:465)
at nl.detailresult.aqadapter.test.OracleQueueSendTextMsgTest.testOracleQueuePlus4000(OracleQueueSendTextMsgTest.java:125)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
[Linked-exception]
oracle.jms.AQjmsException: ORA-00942: table or view does not exist
As far as I can see we have done everything according to the books but does anyone have a clue what we might have missed?Hi,
Have you found a solution to this? I am running into similar issue with SOA Suite using OJMS queues.
Regards,
Rajesh -
Integration Oracle Advance Queue with OSB
We are doing integration for Oracle Advance Queue with OSB.
I created an AQ adapter in Jdev and generate the WSDL and XSD.
I imported both WSDL and XSD in OSB Project.
When i am configuring the business service and selecting the WSDl i am not able to select Binding and ports, is it due to any issue in WSDL?
Please help.
Thanks,
Mihir PandaHi again,
I made some adjustments to your wsdl. I added the binding part and its reference to the appropriate port.
Now I reckon, you should be able to do your thing:
<wsdl:definitions
name="enq"
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/aq/Applicatio90/Project4/enq"
xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/aq/Applicatio90/Project4/enq"
xmlns:opaque="http://xmlns.oracle.com/pcbpel/adapter/opaque/"
xmlns:obj1="http://xmlns.oracle.com/xdb/APPS"
xmlns:ph="http://xmlns.oracle.com/pcbpel/adapter/aq/headers/payloadheaders/"
xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>
<plt:partnerLinkType name="Enqueue_plt" >
<plt:role name="Enqueue_role" >
<plt:portType name="tns:Enqueue_ptt" />
</plt:role>
</plt:partnerLinkType>
<wsdl:types>
<!-- Define AQ Headers = Payload Headers -->
<schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/aq/headers/payloadheaders/"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:obj1="http://xmlns.oracle.com/xdb/APPS" >
<import namespace="http://xmlns.oracle.com/xdb/APPS" schemaLocation="xsd/APPS_WF_EVENT_T.xsd"/>
<complexType name="enqHeaderCType" >
<sequence>
<!-- payload header -->
<element name="PayloadHeader" type="xs:string" />
</sequence>
</complexType>
<element name="enqHeader" type="ph:enqHeaderCType" />
</schema>
<schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/opaque/"
xmlns="http://www.w3.org/2001/XMLSchema" >
<element name="opaqueElement" type="base64Binary" />
</schema>
</wsdl:types>
<wsdl:message name="Enqueue_msg">
<wsdl:part name="opaque" element="opaque:opaqueElement"/>
</wsdl:message>
<wsdl:message name="Header_msg">
<wsdl:part name="Header" element="ph:enqHeader"/>
</wsdl:message>
<wsdl:portType name="Enqueue_ptt">
<wsdl:operation name="Enqueue">
<wsdl:input message="tns:Enqueue_msg"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="Enqueue_Binding" type="tns:Enqueue_ptt">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Enqueue">
<soap:operation soapAction="put_your_own_URI_here"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="EnqueueService">
<wsdl:port name="Enqueue_ptt" binding="tns:Enqueue_Binding">
<soap:address location="No Target Adress"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Good luck.
Regards,
Ronald -
Sample Message Driven Bean using Oracle Advance Queuing
Hi,
Can someone please provide me with sample MDB using Oracle Advance Queuing to Enqueue & Dequeue messages?
ThanksWrite your email Id .....I have got a test case which basically enqueus and dequeues the messages using Oracle9i AQ..
--Venky -
Documentation for Oracle Advance Queue
Any pointer to Documentation for Oracle Advance Queue?
Thanks In Advance
priyadarshi.hello,
here it is
http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96587/qintro.htm
http://www.oracle.com/technology/sample_code/tech/dataint/index.html
both will be useful
thanks and regards
VD
Maybe you are looking for
-
CRM 7.0 WEB IC - context node values are not seen in webIC
Hi can anyone help me in resolving my problem in CRM WEB IC. Actually i have added a new context node Using wizard , by right clicking the context nodes. i have four custom fields in that node, these i have to show on the View Account overview and th
-
Displays Text but doesn't Print - pls help.
I am using the full version of Acrobat 5.0. I have a pdf document which is a form that I captured using Acrobat Distiller. I added some text boxes to fill out the form and everything looks fine when I display it on screen. It also looks fine when I s
-
I read lying on my left side at the edge of the bed. With Kindle the "book" would just drop to the floor, turn itself off and wait for me to wake up. I could hold the book in my left hand easily until I fell asleep. The iPad is too heavy to hold in o
-
How to access Pointbase?
I create a domin,then I start the pointbase cmd, I fill username and password both same weblogic(url:jdbc:pointbase:server://localhost:9093/weblogic_eval and driver:com.pointbase.jdbc.jdbcUniversalDriver,but I can't login it. the error prompt is not
-
Modify Mac Mini case for access?
I know it sounds extreme, but has anyone modified the Mac Mini case for easy access to the hard drive? I am considering buying a Mac Mini Server, but don't want to do Mac-surgery anytime I may need or want to swap hard drives. I watched this tear dow