Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

JMS Object Message and Oracle AQ

57806Apr 11 2012 — edited Sep 17 2012
Hi,

I want to be able to send messages from Java to Oracle AQ. I tried using JMS for this, but get the following error --

oracle.jms.AQjmsException: JMS-108: Messages of type ObjectMessage not allowed with Destinations containing payload of type (Oracle Type object) I am setting the object to a model object that implements Serializable.

Two of the fields in the object are defined as Clob in the database. Earlier I have been able to send Strings for Clob. But now I get --

Fail to convert to internal representation

Any idea what could be causing this?

I was able to implement this using AQMessage mentioned elsewhere on the site. I am able to send 100 messages in about 50 seconds by this approach. This is too slow for us to use in production environment.

I would appreciate any help on this.

Thanks,
Swati

Comments

Frank Kulash

Hi, @kannan-sekar
Is this thread a duplicate of: Unique Index not allowing to insert rows into table.. — oracle-tech
If so, one of them should be closed right away. It's confusing (and counter-productive) to have multiple threads for the same question. (This may not be your fault; the site can behave strangely.)

Frank Kulash

Hi,
I am unable to replicate the issue here, instead i explained in words below.
That makes it hard (perhaps impossible) to solve the problem. What problem do you have in producing a test case that the people who want to help you can replicate?
Step1: Creating table with primary key on col1
CREATE TABLE T1(PKEY NUMBER(10) PRIMARY KEY, ACCT_NO NUMBER(10), ACCT_KEY NUMBER(10), ACCT_STATUS NUMBER(1), ACCT_GRP_STATUS NUMBER(1));
The table created above doesn't have a column called col1. If you have a problem with some table that has a column called col1, post the CREATE TABLE and INSERT statements for that table.
Step2: Creating unique index on using CASE statement
CREATE UNIQUE INDEX IDX_T1_ACCT_KEY ON T1 ( CASE WHEN ACCT_STATUS = 1 AND ACCT_GRP_STATUS = -1 THEN ACCT_KEY ELSE NULL END);
Explain the requirement that the index is supposed to meet. For example, "I need to make sure that among all the rows with the same acct_key value, no more than one of them has acc_status=1 and acct_grp_status=-1."
By the way, that index uses a CASE expression, not a CASE statement. A CASE statement is something different. You'll get better answers faster if you say what you mean.
Below kind of row value is not inserted in my real world (getting unique index error).
Are you sure the index you posted is causing the error? Post the exact, complete error message you get.

1 - 2
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Oct 15 2012
Added on Apr 11 2012
1 comment
1,703 views