Replace message payload object without remove queue table
hi,
i want to replace message payload object without remove queue table but i have got the "ORA-02303: cannot drop or replace a type with type or table dependents" error.
is there any way to replace message payload object without remove queue table?
Click to link below to find a demo which is explain the problem clearly
Replace message payload object without remove queue table
Regards.
Hi
I answered this in Re: Replace message payload object without remove queue table forum.
Cheers, APC
Similar Messages
-
Edit message payload object without remove queue table
Hi, need ur help again,
Known that if we want to modify a message payload attribute (add,edit or delete), we will fail to do so if the message payload is used by existing AQ's queue table.
How to change the message payload object without remove the queue table?
Thanks!Hi
I answered this in Re: Replace message payload object without remove queue table forum.
Cheers, APC -
Messages remain in Queue Table
Hello,
I work as a dba in a company where my colleagues are developing an application that uses AQ.
The application is installed on multiple databases but we have a problem in a particular one:
the processed messages are not deleted from table by Oracle.
DBMS_AQADM.CREATE_QUEUE( Queue_name => 'my_AQ', Queue_table => 'AQT', Queue_type => 0, Max_retries => 65535, Retry_delay => 0, Retention_time => 2592000, dependency_tracking => FALSE);
SELECT msg_state, count(*) FROM AQT GROUP BY msg_state;
PROCESSED 830548
SELECT min(enq_time),max(enq_time) FROM AQT
07-OCT-10 01-AUG-12
SELECT value FROM v$parameter WHERE name='aq_tm_processes'
10
thanks,Hi,
I didn't notice this in your first post:
DBMS_AQADM.CREATE_QUEUE(
Queue_name => 'my_AQ',
Queue_table => 'AQT',
Queue_type => 0,
Max_retries => 65535,
Retry_delay => 0,
Retention_time => 2592000, <<<<<<<<<< why are you specifying such a high value for this?
dependency_tracking => FALSE
);Retention_time: See doc for this value: http://docs.oracle.com/cd/E11882_01/server.112/e11013/aq_admin.htm#i1006091
This parameter specifies the number of seconds a message is retained in the queue table after being dequeued from the queue. When retention_time expires, messages are removed by the time manager process. INFINITE means the message is retained forever. The default is 0, no retention.
You are asking for messages to be retained for 30 days, now looking at the min/max enq_time you have messages which are much older than this, but did you check when they were actually DQ'd (DEQ_TIME)?
Also, from my previous post, did you check out that MOS note ? Did you check what the Q00 processes are doing in the database?
Thanks
Paul -
Hi,
i want to do the following:
When i receive a message in XI, i want to save the message payload temporally in an abap table. So i will define a rfc to call from XI and give the message payload as an import parameter.
Have you any idea how to do this? How can i get the message payload(xml string) and give it to the rfc as a parameter?
thanks,
Peter Hahi Peter,
you can map the whole XML structure
to your rfc parameter with the use of XSLT
have a look at my weblog:
XI: XML node into a string with graphical mapping?
/people/michal.krawczyk2/blog/2005/11/01/xi-xml-node-into-a-string-with-graphical-mapping
Regards,
michal -
Note:304522.1 How to Move Queue Tables without using export import
Trying to use the pkg available in Metalink "Note:304522.1 How to Move Queue Tables without using export import"
Using the 10.1.0.x and upwards Package, I'm getting the following error on a single consumer queue table with an xmltype payload:
SQL> exec move_aqt.move('XFORM_TEST_INT','INTERFACE_XML_QUEUE','SMALLBLOCK');
BEGIN move_aqt.move('XFORM_TEST_INT','INTERFACE_XML_QUEUE','SMALLBLOCK'); END;
ERROR at line 1:
ORA-20000: ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.MOVE_AQT", line 652
ORA-06512: at line 1
We've tried in multiple environments, always with the same results.
Trace file shows:
*** 2006-11-08 10:06:47.154
*** SERVICE NAME:(SYS$USERS) 2006-11-08 10:06:47.147
*** SESSION ID:(379.954) 2006-11-08 10:06:47.147
qtable move procedure starting execution at 08-11-2006 10:06:47 for queue table XFORM_TEST_INT.INTERFACE_XML_QUEUE
qtable move procedure experienced an exception at 08-11-2006 10:06:47
qtable move error message ORA-06502: PL/SQL: numeric or value error
qtable move procedure ended execution at 08-11-2006 10:06:47
Can anyone help with this? Has anyone used this before successfully (or not successfully). We urgently need this working today to test moving our queue table into a tablespace with a smaller block size for performance reasons in production.
Thanks for the help!
TonyThank you,
Yes we've done that. They've confirmed a problem with the links/scripts on the note. The 10.1 and up version was not really 10.1 and up.
As they would not have a new version available in time for the move we needed to perform, we switched our approach to using dbms_redefinition instead.
Thanks for the reply,
Tony -
Problem in creating Queue Table of 'VARCHAR2' Payload.
Hello guys!!
I am having a problem creating a Queue Table of payload type 'VARCHAR2'. I want to create a queue for simple varchar2
type of messages. I am using following command:
dbms_aqadm.create_queue_table(queue_table => 'sh_varchar_queue_table',
queue_payload_type => 'VARCHAR2');
I am getting the following error:
ORA-24000: invalid value VARCHAR2, QUEUE_PAYLOAD_TYPE should be of the form
[SCHEMA.]NAME
Please help!!!
Thanks!!!
ShaluThanks Brajesh!!
Actually I have tried with Object Type n that is working fine. But i didn't know that 'VARCHAR2' can't be a payload type. It
is mentioned in Rel 8.1.5 that it can be a 'VARCHAR2' n I started trying that. didn't know that it's not possible in 9i.
Anyways, thanx so much!!!
N Brajesh, few days back on the discussion forum itself, I mentioned my e-mailed to you. I wanted to get in touch with u
bcoz i need ur help for so many other problems. I have tight deadlines n i am new to all this stuff.
Once again, can u pls e-mail me at [email protected] Shall look forward to ur e-mail.
Thanks so much!!
Shalu -
Queue Table with Nested Objects
I need to create a queue table based on nested object
These are my declarations
TYPE TESTATATYPE AS OBJECT (
CODICE VARCHAR2(5),
DESCRIZIONE VARCHAR2(30)
TYPE DETTAGLIOTYPE AS OBJECT (
CODICE VARCHAR2(5),
DESCRIZIONE VARCHAR2(30),
VALORE NUMBER
TYPE DETTAGLITYPE IS TABLE OF DETTAGLIOTYPE
TYPE MESSAGGIOTYPE AS OBJECT (
TESTATA TESTATATYPE,
DETTAGLI DETTAGLITYPE
Now i'm trying to create queue table
DBMS_AQADM.CREATE_QUEUE_TABLE(queue_table => 'MsgQTab',
queue_payload_type => 'MessaggioType',
storage_clause => 'NESTED TABLE
dettagli STORE AS dettagli_tab_Q',
sort_list => 'priority,enq_time'
but I get
ORA-00904: invalid column name
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 2012
ORA-06512: at "SYS.DBMS_AQADM", line 55
ORA-06512: at line 3
maybe the problem is storage clause, can you help me ?
nullAndrea,
You cannot currently use a nested table even as an embedded object within a message payload.
However, you can create an object type that contains one or more VARRAYs, and create a queue table that is founded on this object type. I guess this might be the problem you are facing. -
HI All,
We create a brand new oracle multi-consumer queue. We have en-queued the messages into the queue and are processed successfully.
But when we checked the STATE Column of the messages in the queue table it was showing as "0". But it is showing as "PROCESSED" in the
AQ$<QUEUE_TABLE> msg_state column.
We are unable to figure out why there is a mismatch. Can any one help us ?
Regards,
Hari P.Hello,
the column value AQ$<QUEUE_TABLE>.MSG_STATE = 'PROCESSED' corresponds to column value <QUEUE_TABLE>.STATE = 2
(see definition of view AQ$<QUEUE_TABLE for the DECODE statement).
In your case you see a value of STATE = 0 instead of STATE = 2. Is this correct ? The value 0 corresponds to a state "READY" (the delay
is gone and the message is ready for dequeuing).
The AQ documentation says: "After the specified delay, the message is in the READY state and available for dequeuing."
Normally, you cannot see the processed data in your AQ because the enqueued data will be deleted after
successful dequeuing. You wrote that they were processed successfully.
Kind regards,
WoG -
Table for XI (PI) message payload content?
Hello Colleagues,
I need to know in what table I am able to find the Payload what is displayed normally under SXMB_MONI for different message processing over XI.
We need to archive (only) payload content for special interfaces in a usefully way.
Many thanks in advance!
Regards,
JochenHi Sudhir,
Many thanks for the providing informations.
During my investigation I found similar information.
So, I afraid too that where is no easy way for export message payload.
Maybe the XML Data Archiving process could be here an answer but i haven't try it before.
Documented at "XML Data Archiving: Configuration Guide for ABAP Applications".
Many thanks for support Sudhir!
Regards,
Jochen -
Large Message Payload - Queue selection
Hi,
I have one message with payload size around 105MB when I am trying to send through XI this message gets failed in the queue (inbound) of integration engine saying some memory problem to process the message. I have seen the queue it is picking up some XBT09_000 but I want to use the queue XBTL* as this queue is for large messages. The whole thing is that when my message is around 100MB I want it route large message processing queue i.e XBTL*. Is there anyway to do this? Any help on this greatly appreciated.
Thanks.,
Daniel.LAThere is a way to defer large messages from the rest and process them using a job in a specific queue.
Please check this configuration :
<a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm">http://help.sap.com/saphelp_nw2004s/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm</a><a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/14/8024">Message Selection Filter</a>
in this path:
Under Runtime - > Integration engin ->
Prioritized Message Processing
Queues for Prioritized Message
Good luck
Nimrod -
Message payload logging for Uniform Distribute Queue
Hi All,
We have a requirement to log the message payload, of every jms message received in a Uniform Distribute Queue in Weblogic.
Please let us know how can we achieve this.
Thanks.If you want to avoid use of the Path Service, then the alternative is to make the destination members highly available. This will help ensure that the host member for a particular UOO is up.
One approach to HA is to configure "service migration". For more information see the Automatic Service Migration white-paper at
http://www.oracle.com/technology/products/weblogic/pdf/weblogic-automatic-service-migration-whitepaper.pdf
In addition, I recommend referencing Best Practices for JMS Beginners and Advanced Users
http://docs.oracle.com/cd/E17904_01/web.1111/e13738/best_practice.htm#JMSAD455 to help with WL configuration in general.
Hope this helps,
Tom -
Alerts with variables from the messages payload without BPM?
Hi, experts:
Is it possible to define a alert category with variables from the messages payload(for example:order_id ) without BPM?
Regards
Yu MingRefer to
http://searchsap.techtarget.com/tip/0,289483,sid21_gci1240902,00.html
initially this also talk about BPM but you can check whether you can use the container variable in you case.
How to define the container variable in ALRTCATDEF is mention in above link.
**Points if answers find useful.
Gaurav Jain -
using PS on a regular computer windows 7 tryng to remove an object from a picture, following steps in the tutorial however when the object is removed it is replaced by another (unwanted) portion of the photo i.e. someones face instead of what would have normally been in the background
Well, we can't know. You have not told us what tools you use and what steps nor provided any screenshots. From your description it simply sounds like you are following some tutorial (which again we know nothing about because you haven't told us which one) and getting things wrong. You need to do much better if you want people to help you.
Mylenium -
Hi,
A Queue Table has been defined with payload type as SYS.AQ$_JMS_MESSAGE.
In java a property has been defined using setStringProperty("AdditionalMsgID",'123456').
Requirement is to get this property using sql SELECT statement.
Question is how can this be achieved.
By this "Requirement is to get this property using sql SELECT statement. "
what I mean is that this property can be used in selecting or sorting the messages by using it in "WHERE" clause or "ORDER BY" clause of sql "SELECT" statement.
I should be able to fire a SELECT statement from java using this property in the "ORDER BY" clause.
For Example:- SELECT * FROM MsgTable ORDER BY UserMsgID;
(where UserMsgID is a property defined in java for the message using setStringProperty() method.)
I should not have to dequeue or browse the message as that would mean getting the Message Body as well which can be very huge.
If I did not use JMS and instead I defined a simple type (structure) for holding the header and body of the message I am able to use that header in select statement. Similarly I wish if I could use the header or property defined in JMS as JMS payload is also built using type and type body.
Hoping for a concrete solution as our lots of problem would be solved if this works out.
Thanks & regards
Sanjeev
P.S. : I have posted a similar query in Advance queuing also but have not received any reply so I am posting it here hope one doesn't mind.
Message was edited by:
user453374Hello
I've not used JMS myself but I've been having a dig round and I think you should be able to do what you're wanting to. This very simple example shows the principal:
CREATE OR REPLACE TYPE ot_Test_Type IS OBJECT
( id number,
MEMBER FUNCTION GetProp(prop_name IN VARCHAR2) RETURN NUMBER
CREATE OR REPLACE TYPE BODY ot_Test_Type
AS
MEMBER FUNCTION GetProp(prop_name IN VARCHAR2) RETURN NUMBER
IS
ln_Ret NUMBER;
BEGIN
RETURN ASCII(prop_name);
END;
END;
SQL> create table dt_test_ot_tab of ot_test_type;
Table created.
SQL> insert into dt_test_ot_tab values(ot_test_type(1));
1 row created.
SQL> select a.id from dt_test_ot_tab a where a.getprop('a') = 97;
ID
1
SQL> select a.id from dt_test_ot_tab a where a.getprop('b') = 97;
no rows selected
SQL> select a.id from dt_test_ot_tab a where a.getprop('b') = 98;
ID
1So from the documentation for AQ$_JMS_MESSAGE, there are member functions
MEMBER FUNCTION get_boolean_property (property_name IN VARCHAR)
RETURN BOOLEAN,
MEMBER FUNCTION get_byte_property (property_name IN VARCHAR)
RETURN INT,
MEMBER FUNCTION get_short_property (property_name IN VARCHAR)
RETURN INT,
MEMBER FUNCTION get_int_property (property_name IN VARCHAR)
RETURN INT,
MEMBER FUNCTION get_long_property (property_name IN VARCHAR)
RETURN NUMBER,
MEMBER FUNCTION get_float_property (property_name IN VARCHAR)
RETURN FLOAT,
MEMBER FUNCTION get_double_property (property_name IN VARCHAR)
RETURN DOUBLE PRECISION,
MEMBER FUNCTION get_string_property (property_name IN VARCHAR)
RETURN VARCHAR);Which you should be able to call in the where caluse of a select on that table in a similar way to the example above. The main thing I found is that you need to alias the table to be able to call the function.
HTH
David
Message was edited by:
david_tyler
Oops! Forgot to put in the create table bit :-) -
Dequeue elements from an apply - queue table
hi Everyone?
I'm tried dequeue elements from a queue table. This one, is associated to an apply streams process. I'd wrote this procedure to test a manual dequeue, but this error message appears :
ORA-25228: timeout or end-of-fetch during message dequeue from STADMIN.Q_APP_SELECTS_FROM_CRM
The queue is not empty
Help me please... thank you
The Procedure code is:
create or replace procedure str_clean_queue (cola in varchar2, tabla in varchar2, comando in varchar2) is
next_trans EXCEPTION;
pragma exception_init (next_trans, -25235);
no_messages EXCEPTION;
pragma exception_init (no_messages, -25228);
dequeueOpt dbms_aq.dequeue_options_t;
message_properties dbms_aq.message_properties_t;
message SYS.ANYDATA;
msgid raw(16);
newMess boolean;
lcr SYS.LCR$_ROW_RECORD;
a number :=0;
begin
dequeueOpt.CONSUMER_NAME := 'APP_SELECTS_FROM_CRM';
dequeueOpt.DEQUEUE_MODE := DBMS_AQ.LOCKED;
dequeueOpt.NAVIGATION := DBMS_AQ.FIRST_MESSAGE;
dequeueOpt.VISIBILITY := DBMS_AQ.IMMEDIATE;
dequeueOpt.WAIT :=10;
dequeueOpt.MSGID := null;
newMess:=True;
while (newMess) loop
begin
DBMS_AQ.DEQUEUE (
queue_name => 'STADMIN.'|| cola,
dequeue_options => dequeueOpt,
message_properties => message_properties,
payload => message,
msgid => msgid);
-- analizamos lo que llego en el payload
lcr := DBMS_STREAMS.CONVERT_ANYDATA_TO_LCR_ROW(message);
if (lcr.get_command_type = comando AND
lcr.get_object_name = tabla AND
lcr.get_object_owner = 'DBADMIN') then
-- hacer desaparecer el lcr de la cola
dequeueOpt.DEQUEUE_MODE := DBMS_AQ.REMOVE;
dequeueOpt.MSGID := msgid;
DBMS_AQ.DEQUEUE (
queue_name => 'STADMIN.'|| cola,
dequeue_options => dequeueOpt,
message_properties => message_properties,
payload => message,
msgid => msgid);
a:=a+1;
end if;
dbms_output.put_line(a);
exception
WHEN next_trans THEN
dequeueOpt.navigation := DBMS_AQ.NEXT_TRANSACTION;
WHEN no_messages THEN
dbms_output.put_line(sqlerrm);
newMess := FALSE;
end;
end loop;
end str_clean_queue;Hello,
as you wrote you already have a code snippet with DBMS_AQ.DEQUEUE of an exception queue.
Wrap this DEQUEUE in an infinite loop (LOOP ... END LOOP). In order to have this procedure as an autonomous session
you can start it as a database job:
DECLARE
v_jobno NUMBER(6);
BEGIN
DBMS_JOB.SUBMIT( v_jobno,
'BEGIN <your module>; END;',
SYSDATE, NULL );
COMMIT;
END;
/Kind regards,
WoG
Maybe you are looking for
-
Function module to check if a file is already open
Hi All, Could any one of you tell me a function module which checks whether a given file on the application server is currently being open or not. Regards Amit Mishra
-
String concat PROBLEM??? Please Help
I have this strange Question regarding String concat If I say: String str = "Welcome"; str.concat(" to Java"); System.out.println(str); The output is: Welcome. How do I get the output to Welcome to Java??
-
Preview app quits unexpectedly after installing lion
I updated to osx Lion a short while ago, and every time i try to open an image or a document, it quits unexpectantely, and it shows this report : Process: Preview [14592] Path: /Applications/Preview.app/Contents/MacOS/Preview Ident
-
I have downloaded multiple Cds that I buy on my itunes and I could play them perfectly well on my ipad. When I downloaded the new operating system, my albums won't play. The songs just skip without playing. Is this normal?
-
HT6162 trying to install update iOS7.1.1 asking for passcode ?
trying to install update iOS7.1.1 asking for passcode ?