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 destination key used for message ordering not working

792171Nov 11 2011
Hi there,

i'm using Weblogic 10.3. I've been trying to implement ordering of messages using a destination key assigned to a JMS message queue. The default ordering is FIFO (it uses the JMSMessageID in ascending order for this).
According to documentation (http://download.oracle.com/docs/cd/E12840_01/wls/docs103/ConsoleHelp/taskhelp/jms_modules/destination_keys/ConfigureDestinationKeys.html) one can also configure the queue to behave in a LIFO manner by creating a destination which sorts on the JMSMessageID in a descending order.

I have tried this, it does not work. I have also played with different message priority settings and tried to sort on the JMSPriority field of the messages in ascending and descending order, it changes nothing. Messages keep being processed in a FIFO manner.

Has anyone been able accomplish message ordering other than FIFO? Am I missing something?

Any assistance would be highly appreciated!

Comments

Pete_Scott

You say Variable C is refreshed - have you tried setting it instead?  On the Set Variable option of the package you could enter the two variables to combine - you need qualify the variables with the project name

Also are both A and B of the same data type?

3551278

It doesn't seem to work by setting variable C either.

I still get the error  "Variable has no value: PROJECT.VARIABLE_A"

Both variables are text.

The whole process works when I am setting the variable A and launching my package manually.

It doesn't work when i'm passing the variable A value with the startscen command.

Pavan8u

While generating Scenario, have you selected VAR A as startup parameter?

Regards,

Pavan

3551278

I think so, VAR A is INTERFACES.PAIE_XINT_MOIS in the screenshot below.

pastedImage_0.png

Pierre-Yves

Pavan8u

I tried it in my pc and it is working fine.

In Var_c I wrote query like

SELECT '#PAVAN.var_a'||'#PAVAN.var_b' from dual.

Please check whether you are using # before variable name or not. Please check Project name as well.

Regards,

Pavan

3551278

Sorry i was no specific enough.

I am encapsulating a scenario in another scenario.

In scenario 1 I declare VAR A (INTERFACES.PAIE_XINT_MOIS) and set VAR B (INTERFACES.PAIE_XINT_SOC_LIB)

Then I call scen 2 and refresh VAR C (INTERFACES.PAIE_XINT_CHEMIN) using the following query :

pastedImage_0.png

If I try refreshing VAR C in the first scenario, it works fine.

It is not working when doing it in scenario 2

Pierre-Yves

Pavan8u

If I am not wrong, you have one main scenario SCN1 and from SCN1 you are calling SCN2. You have var1 and var2 in SCN1 and var3 in SCN2.

In order to refresh VAR3 in SCN2 you need to pass var1 and var2 as additional parameters to SCN2.

Refer this blog for some insight-

http://odiexperts.com/passing-values-to-odi-variables-in-packagesscenarios/

Regards,

Pavan

3551278

You are right.

VAR A and B are declared in SCN2 before refreshing VAR C.

pastedImage_0.png

Therefore they are passed as startup parameters.

The whole thing works when VAR A is set manually in SCN1

But it doesn't work anymore when VAR A is passed with starscn command.

I think the solution might be to write the value of VAR A in a temporary table and use this table for queries.

Pierre-Yves

Pavan8u
Answer

In Package1, click on SCN2 and click on ADDITIONAL PARAMETERS, there you need to add VAR-A and VAR-B as additional parameters. Refer blog which mentioned in above thread.

Regards,

Pavan

Marked as Answer by 3551278 · Sep 27 2020
3551278

Thanks a lot Pavan, it did the trick, indeed.

Have a nice day.

Pierre-Yves

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

Post Details

Locked on Dec 9 2011
Added on Nov 11 2011
0 comments
631 views