-
1. Re: Interoperability issues with ArjunaJTS CosTransactions idl
tomjenkinson Mar 31, 2016 11:49 AM (in response to mmusgrov)To question 1:
OMG Document -- formal/01-05-02 (Object Transaction Service specification, v1.2)
enum Status {
StatusActive,
StatusMarkedRollback,
StatusPrepared,
StatusCommitted,
StatusRolledBack,
StatusUnknown,
StatusNoTransaction,
StatusPreparing,
StatusCommitting,
StatusRollingBack
};
To question 2:
We should consider rolling forward to 1.4 for Narayana 6 IMO. We could have different Stubs for different versions of the spec and load them dynamically but I do not believe there is a way to determine the version in use so it would likely be a configuration option. Backwards compatibility is an aim in the WildFly container so possibly we can have a mode that replicates that enum in Java (but not from stub generation) that can be used if the user sets the option. It could be enabled with the slotid option (legacyCosTransactionsOptions).
-
2. Re: Interoperability issues with ArjunaJTS CosTransactions idl
mmusgrov Apr 1, 2016 5:14 AM (in response to tomjenkinson)Tom Jenkinson wrote:
To question 1:
OMG Document -- formal/01-05-02 (Object Transaction Service specification, v1.2)
enum Status {
StatusActive,
StatusMarkedRollback,
StatusPrepared,
StatusCommitted,
StatusRolledBack,
StatusUnknown,
StatusNoTransaction,
StatusPreparing,
StatusCommitting,
StatusRollingBack
};
My follow-up remark is that our copy of ArjunaJTS/idl/src/main/idl/omg/CosTransactions.idl seems to be from draft version of the spec (according to some of the comments in the idl file), ie we are using an unofficial OTS version.
-
3. Re: Interoperability issues with ArjunaJTS CosTransactions idl
tomjenkinson Apr 1, 2016 7:26 AM (in response to mmusgrov)I think unless we get any objection lets just roll to 1.4 for Narayana 6. Lets also put some handling in for the old status enum that can be enabled with the slot id change too. Are there any other differences? If not we might be able to do this in a minor version bump rather than a major.
-
4. Re: Interoperability issues with ArjunaJTS CosTransactions idl
mmusgrov Apr 1, 2016 9:31 AM (in response to tomjenkinson)The required changes are the slot id, the IDL definition of org.omg.CosTransactions.Status and the need to disable the "foreign transaction import" interceptor in WildFly. Changing the slot id or IDL will mean that we will not be able to interoperate with earlier versions of WildFly/EAP so yes we will need a config option for the change.
-
5. Re: Interoperability issues with ArjunaJTS CosTransactions idl
tomjenkinson Apr 4, 2016 6:26 AM (in response to mmusgrov)Yes, a config option makes sense. Is it an invasive change or can the status option be coded directly in Java? Can you link to the code where the status ordering is a problem?
Would the config be all-or-nothing or is there some way to detect the version of the client? In terms of the slotID, can we send the context in both slots?
I think if the config can be easily encapsulated we can get away with a minor version upgrade and just change the default in Narayana 6.
Have you verified there are no further differences from 1.4 in narayana/CosTransactions.idl at master · jbosstm/narayana · GitHub? For example, does the Vote enum look OK and do all the structs have the right fields in the right order?
-
6. Re: Interoperability issues with ArjunaJTS CosTransactions idl
marklittle Apr 4, 2016 12:08 PM (in response to mmusgrov)I wouldn't pay too much attention to any "draft" comments - we were updated to the official version of 1.2 at the time but either something got lost in the migrations or perhaps the C ifdefs that we had in the original .tmpl file were responsible for ordering problems. I'm not sure. But it is something to be fixed.