In the meantime... here is my workaround for the problem with SET CHAINED,
Sybase, and Jonas. It consists of a customized version of the jConnect JDBC
driver. This approach has the advantage that you don't need to change the
jonas source or rebuild jonas.
To use it,
i) put the classes below in your CLASSPATH
ii) specify uk.org.rbgkew.sepasal.util.ejb.jonas.JConnectDriverForJonas as
the JDBC driver (i.e. the value of datasource.classname in
jonas.properties)
iii) use a JDBC URL for your datasource of the form
"jdbc:sybaseforjonas:<etc>" instead of the usual "jdbc:sybase:<etc>".
The last step is necessary so that DriverManager.connect() will invoke the
right driver.
The workaround connection object tries calling setAutoCommit() on the
Sybase connection object that it wraps, and if the "SET CHAINED command not
allowed within multistatement transaction" error is generated, it then
calls commit(), and then calls setAutoCommit() again. So commit() is only
called as necessary. In all other respects the workaround classes just call
through to the Sybase classes.
Joe
=====================================================================
Joe Gittings, Royal Botanic Gardens, Kew
Hanover House, Kew, Richmond, Surrey TW9 3AB
[EMAIL PROTECTED]
+44 181 332 5712
fax: +44 181 332 5736
begin 600 JConnectDriverForJonas.java
M+R\@5&ET;&4Z(" @(" @("!315!!4T%,('5T:6QI='D@;&EB<F%R>0T*+R\@
M0V]M<&%N>3H@(" @("!2;WEA;"!";W1A;FEC($=A<F1E;G,@2V5W#0HO+R!!
M=71H;W(Z(" @(" @($IO92!':71T:6YG<PT*+R\@1FEL93H@(" @(" @("!*
M0V]N;F5C=$1R:79E<D9O<E-Y8F%S92YJ879A#0H-"G!A8VMA9V4@=6LN;W)G
M+G)B9VME=RYS97!A<V%L+G5T:6PN96IB+FIO;F%S.PT*#0II;7!O<G0@:F%V
M82YS<6PN*CL-"FEM<&]R="!J879A+G5T:6PN*CL-"@T*:6UP;W)T(&-O;2YS
M>6)A<V4N:F1B8S(N:F1B8RXJ.PT*#0HO*BI#=7-T;VUI>F%T:6]N(&]F('1H
M92!J0V]N;F5C="!D<FEV97(@8VQA<W,@=&\@=V]R:R!A<F]U;F0@=&AE(%-%
M5"!#2$%)3D5$#0IP<F]B;&5M('1H870@;V-C=7)S('=H96X@:70@:7,@=7-E
M9"!I;B!*;VYA<RX-"D-U<W1O;6EZ871I;VX@:7,@=FEA(&%G9W)E9V%T:6]N
M(')A=&AE<B!T:&%N(&EN:&5R:71A;F-E+B!4:&ES(&ES(&)E8V%U<V4@=&AE
M(&-O;FYE8W0H*0T*;65T:&]D(&EN('1H92!3>6)A<V4@9')I=F5R+"!W:&EC
M:"!W92!N965D('1O(&-U<W1O;6EZ92P@:7,@9FEN86PN#0I9;W4@<VAO=6QD
M('5S92!T:&4@<W1A;F1A<F0@2D-O;FYE8W0@2D1"0R!54DP@8G5T(&UO9&EF
M:65D('1O(&-O;G1A:6X-"B)J9&)C.G-Y8F%S969O<FIO;F%S.BXN+B(@<F%T
M:&5R('1H86X@(FID8F,Z<WEB87-E.BXN+B(N*B\-"G!U8FQI8R!C;&%S<R!*
M0V]N;F5C=$1R:79E<D9O<DIO;F%S(&EM<&QE;65N=',@:F%V82YS<6PN1')I
M=F5R#0I[#0H@(" O+R!296=I<W1E<B!O=7)S96QV97,@=VET:"!T:&4@1')I
M=F5R36%N86=E<@T*(" @<W1A=&EC"B @('L*(" @(" @=')Y"B @(" @('L*
M(" @(" @"5-Y<W1E;2YO=70N<')I;G1L;B@B4F5G:7-T97)I;F<@2D-O;FYE
M8W1$<FEV97)&;W)*;VYA<R!I;B!S=&%T:6,@:6YI=&EA;&EZ97(@8V]D92XN
M+B(I.PH@(" @(" @("!J879A+G-Q;"Y$<FEV97)-86YA9V5R+G)E9VES=&5R
M1')I=F5R*&YE=R!*0V]N;F5C=$1R:79E<D9O<DIO;F%S*"DI.PH@(" @("!]
M"B @(" @(&-A=&-H("A344Q%>&-E<'1I;VX@92D*(" @(" @>PH@(" @(" @
M("!E+G!R:6YT4W1A8VM4<[EMAIL PROTECTED]@(" @("!]"B @('T*#0H)<')O=&5C
M=&5D(%-Y8D1R:79E<B!M7U-Y8D1R:79E<CL-"@T*"7!U8FQI8R!*0V]N;F5C
M=$1R:79E<D9O<DIO;F%S*"D@=&AR;W=S(%-13$5X8V5P=&EO;@T*(" @>PT*
M(" @"5-Y<W1E;2YO=70N<')I;G1L;B@B26X@2D-O;FYE8W1$<FEV97)&;W)*
M;VYA<R!C;VYS=')U8W1O<B(I.PT*(" @"6U?4WEB1')I=F5R(#T@;F5W(%-Y
M8D1R:79E<[EMAIL PROTECTED]*(" @?0T*#0H@("!P=6)L:6,@:F%V82YS<6PN0V]N;F5C
M=&EO;B!C;VYN96-T*%-T<FEN9R!S55),+%!R;W!E<G1I97,@<')O<',I('1H
M<F]W<R!344Q%>&-E<'1I;VX-"B @('L*(" @"5-Y<W1E;2YO=70N<')I;G1L
M;B@B16YT97)I;F<@2D-O;FYE8W1$<FEV97)&;W)*;VYA<RYC;VYN96-T(BD[
M"B @(" @(%-Y<W1E;2YO=70N<')I;G1L;B@B55),(&ES("(@*R!S55),*3L*
M"B @( E3=')I;F<@<U!R969I>" ](")J9&)C.G-Y8F%S969O<FIO;F%S.B([
M"@H@(" ):68@*'-54DPN<W1A<G1S5VET:"AS4')E9FEX*2D*(" @(" @>PH@
M(" @(" @("!3=')I;F<@<U-Y8F%S95523" ](")J9&)C.G-Y8F%S93HB("L@
M<U523"YS=6)S=')I;F<H<U!R969I>"YL96YG=&@H*2D["B @(" @(" @(%-Y
M<W1E;2YO=70N<')I;G1L;B@B36]D:69I960@55),(&ES("(@*R!S4WEB87-E
M55),*3L*"@D@(" )4WES=&5M+F]U="YP<FEN=&QN*")'971T:6YG(&-O;FYE
M8W1I;VX@9G)O;2!S>6)A<V4@9')I=F5R(BD["B @( D@("!#;VYN96-T:6]N
M(&-O;B ](&U?4WEB1')I=F5R+F-O;FYE8W0H<U-Y8F%S95523"QP<F]P<RD[
M"B @( D)4WES=&5M+F]U="YP<FEN=&QN*")';W0@8V]N;F5C=&EO;B!F<F]M
M('-Y8F%S92!D<FEV97(B*3L-"@D@(" @("!R971U<FX@;F5W($I#;VYN96-T
M0V]N;F5C=&EO;D9O<DIO;F%S*"A3>6)#;VYN96-T:6]N*6-O;BD[#0H@(" @
M("!]#0H@(" @("!E;'-E#0H@(" @(" )=&AR;W<@;F5W(%-13$5X8V5P=&EO
M;B@B0V%N)W0@8V]N;F5C="!T;R!T:&ES(%523"(I.PT*(" @?0T*#0H@("!P
M=6)L:6,@8F]O;&5A;B!A8V-E<'1S55),*%-T<FEN9R!U<FPI('1H<F]W<R!3
M44Q%>&-E<'1I;VX@>W)E='5R;B!M7U-Y8D1R:79E<BYA8V-E<'1S55),*'5R
M;"D[?0T*(" @<'5B;&EC(&EN="!G971-86IO<E9E<G-I;VXH*2![<F5T=7)N
M(&U?4WEB1')I=F5R+F=E=$UA:F]R5F5R<VEO;[EMAIL PROTECTED]"B @('!U8FQI8R!I
M;G0@9V5T36EN;W)697)S:6]N*"D@>W)E='5R;B!M7U-Y8D1R:79E<BYG971-
M:6YO<E9E<G-I;VXH*3M]#0H@("!P=6)L:6,@1')I=F5R4')O<&5R='E);F9O
M6UT@9V5T4')O<&5R='E);F9O*%-T<FEN9R!U<FPL4')O<&5R=&EE<R!I;F9O
M*2!T:')O=W,@4U%,17AC97!T:6]N('MR971U<FX@;5]3>6)$<FEV97(N9V5T
M4')O<&5R='E);F9O*'5R;"QI;F9O*3M]#0H)<'5B;&EC(&)O;VQE86X@:F1B
M8T-O;7!L:6%N="@I('MR971U<FX@;5]3>6)$<FEV97(N:F1B8T-O;7!L:6%N
,="@I.WT-"GT-"@T*
`
end
begin 600 JConnectConnectionForJonas.java
M+R\@5&ET;&4Z(" @(" @("!315!!4T%,('5T:6QI='D@;&EB<F%R>0T*+R\@
M0V]M<&%N>3H@(" @("!2;WEA;"!";W1A;FEC($=A<F1E;G,@2V5W#0HO+R!!
M=71H;W(Z(" @(" @($IO92!':71T:6YG<PT*+R\@1FEL93H@(" @(" @("!*
M0V]N;F5C=$-O;FYE8W1I;VY&;W)*;VYA<RYJ879A#0H-"G!A8VMA9V4@=6LN
M;W)G+G)B9VME=RYS97!A<V%L+G5T:6PN96IB+FIO;F%S.PT*#0II;7!O<G0@
M:F%V82YS<6PN*CL-"FEM<&]R="!J879A+G5T:6PN*CL-"@T*:6UP;W)T(&-O
M;2YS>6)A<V4N:F1B8S(N:F1B8RXJ.PT*#0HO*BI#=7-T;VUI>F%T:6]N(&]F
M(&I#;VYN96-T($-O;FYE8W1I;VX@8VQA<W,Z('1H92!O;FQY(&UE=&AO9"!C
M=7-T;VUI>F5D(&ES('-E=$%U=&]#;VUM:70N#0I#=7-T;VUI>F%T:6]N(&ES
M('9I82!A9V=R96=A=&EO;B!R871H97(@=&AA;B!I;FAE<FET86YC92XJ+PT*
M<'5B;&EC(&-L87-S($I#;VYN96-T0V]N;F5C=&EO;D9O<DIO;F%S(&EM<&QE
M;65N=',@0V]N;F5C=&EO;@T*>PT*"7!R;W1E8W1E9"!3>6)#;VYN96-T:6]N
M(&U?4WEB0V]N;F5C=&EO;CL-"@T*"7!U8FQI8R!*0V]N;F5C=$-O;FYE8W1I
M;VY&;W)*;VYA<RA3>6)#;VYN96-T:6]N(&-O;BD-"B @('L-"B @( EM7U-Y
M8D-O;FYE8W1I;VX@/2!C;VX[#0H@("!]#0H-"B @("\J*D]V97)R:61E(&]F
M('-E=$%U=&]#;VUM:70@=&\@;6%K92!I="!T;VQE<F%N="!O9B!T:&4@9F%C
M="!T:&%T(%-Y8F%S90T*(" @9&]E<VXG="!L:6ME(&ET(&)E:6YG(&-A;&QE
M9"!D=7)I;F<@82!T<F%N<V%C=&EO;BXJ+PT*(" @<'5B;&EC('9O:60@<V5T
M075T;T-O;6UI="AB;V]L96%N(&%U=&]#;VUM:70I('1H<F]W<R!344Q%>&-E
M<'1I;VX-"B @('L-"B @( ET<GD-"B @(" @('L-"@D@(" );5]3>6)#;VYN
M96-T:6]N+G-E=$%U=&]#;VUM:70H875T;T-O;6UI="D[#0H@(" @(" @("!3
M>7-T96TN;W5T+G!R:6YT;&XH(G-E=$%U=&]#;VUM:70H(B K(&%U=&]#;VUM
M:70@*R B*2!S=6-C965D960B*3L-"B @(" @('T-"B @(" @(&-A=&-H("A3
M44Q%>&-E<'1I;VX@92D-"B @(" @('L-"B @(" @( E3=')I;F<@<U)E87-O
M;B ](&4N9V5T365S<V%G92@I+G1O3&]W97)#87-E*"D[#0H@(" @(" @("!I
M9B H<U)E87-O;BYI;F1E>$]F*")S970@8VAA:6YE9"!C;VUM86YD(&YO="!A
M;&QO=V5D(BDA/2TQ*0T*(" @(" @(" @>PT*(" @(" @(" @"5-Y<W1E;2YO
M=70N<')I;G1L;B@B<V5T075T;T-O;6UI="@B("L@875T;T-O;6UI=" K("(I
M(&9A:6QE9"XN+B(I.PT*(" @(" @(" @(" @4WES=&5M+F]U="YP<FEN=&QN
M*")#;VUM:71T:6YG('1H96X@<F5T<GEI;F<B*3L-"B @(" @(" @(" @(&U?
M4WEB0V]N;F5C=&EO;BYC;VUM:70H*3L-"@D)(" @"6U?4WEB0V]N;F5C=&EO
M;BYS971!=71O0V]M;6ET*&%U=&]#;VUM:70I.R O+R!3:&]U;&1N)W0@9F%I
M;"!N;W<N#0H)(" @(" @(" @4WES=&5M+F]U="YP<FEN=&QN*")S971!=71O
M0V]M;6ET*"(@*R!A=71O0V]M;6ET("L@(BD@<W5C8V5E9&5D(&%F=&5R(')E
M=')Y(BD[#0H@(" @(" @("!]#0H@(" @(" @("!E;'-E#0H@(" @(" @(" )
M=&AR;W<@93L@+R\@270G<R!S;VUE(&]T:&5R(%-13$5X8V5P=&EO;CH@<&%S
M<R!I="!U<"X-"B @(" @('T-"B @('T-"@T*(" @<'5B;&EC('9O:60@8VQE
M87)787)N:6YG<R@I('1H<F]W<R!344Q%>&-E<'1I;VX@>VU?4WEB0V]N;F5C
M=&EO;BYC;&5A<E=A<FYI;F=S*"D[?0T*(" @<'5B;&EC('9O:60@8VQO<V4H
M*2!T:')O=W,@4U%,17AC97!T:6]N('MM7U-Y8D-O;FYE8W1I;VXN8VQO<V4H
M*3M]#0H@("!P=6)L:6,@=F]I9"!C;VUM:70H*2!T:')O=W,@4U%,17AC97!T
M:6]N('MM7U-Y8D-O;FYE8W1I;VXN8V]M;6ET*"D[?0T*(" @<'5B;&EC(%-T
M871E;65N="!C<F5A=&53=&%T96UE;G0H*2!T:')O=W,@4U%,17AC97!T:6]N
M('MR971U<FX@;5]3>6)#;VYN96-T:6]N+F-R96%T95-T871E;65N="@I.WT-
M"B @('!U8FQI8R!3=&%T96UE;G0@8W)E871E4W1A=&5M96YT*&EN="!R97-U
M;'139714>7!E+&EN="!R97-U;'13971#;VYC=7)R96YC>2D@=&AR;W=S(%-1
M3$5X8V5P=&EO;B![<F5T=7)N(&U?4WEB0V]N;F5C=&EO;BYC<F5A=&53=&%T
M96UE;G0H<F5S=6QT4V5T5'EP92QR97-U;'13971#;VYC=7)R96YC>2D[?0T*
M(" @<'5B;&EC(&)O;VQE86X@9V5T075T;T-O;6UI="@I('1H<F]W<R!344Q%
M>&-E<'1I;VX@>W)E='5R;B!M7U-Y8D-O;FYE8W1I;VXN9V5T075T;T-O;6UI
M="@I.WT-"B @('!U8FQI8R!3=')I;F<@9V5T0V%T86QO9R@I('1H<F]W<R!3
M44Q%>&-E<'1I;VX@>W)E='5R;B!M7U-Y8D-O;FYE8W1I;VXN9V5T0V%T86QO
[EMAIL PROTECTED]"B @('!U8FQI8R!$871A8F%S94UE=&%$871A(&=E=$UE=&%$871A
M*"D@=&AR;W=S(%-13$5X8V5P=&EO;B![<F5T=7)N(&U?4WEB0V]N;F5C=&EO
M;BYG971-971A1&[EMAIL PROTECTED]"B @('!U8FQI8R!I;G0@9V5T5')A;G-A8W1I
M;VY)<V]L871I;VXH*2!T:')O=W,@4U%,17AC97!T:6]N('MR971U<FX@;5]3
M>6)#;VYN96-T:6]N+F=E=%1R86YS86-T:6]N27-O;&%T:6]N*"D[?0T*(" @
M<'5B;&EC($UA<"!G9714>7!E36%P*"D@=&AR;W=S(%-13$5X8V5P=&EO;B![
M<F5T=7)N(&U?4WEB0V]N;F5C=&EO;BYG9714>7!E36%P*"D[?0T*(" @<'5B
M;&EC(%-13%=A<FYI;F<@9V5T5V%R;FEN9W,H*2!T:')O=W,@4U%,17AC97!T
M:6]N('MR971U<FX@;5]3>6)#;VYN96-T:6]N+F=E=%=A<FYI;F=S*"D[?0T*
M(" @<'5B;&EC(&)O;VQE86X@:7-#;&]S960H*2!T:')O=W,@4U%,17AC97!T
M:6]N('MR971U<FX@;5]3>6)#;VYN96-T:6]N+FES0VQO<V5D*"D[?0T*(" @
M<'5B;&EC(&)O;VQE86X@:7-296%D3VYL>2@I('1H<F]W<R!344Q%>&-E<'1I
M;VX@>W)E='5R;B!M7U-Y8D-O;FYE8W1I;VXN:7-296%D3VYL>[EMAIL PROTECTED]"B @
M('!U8FQI8R!3=')I;F<@;F%T:79E4U%,*%-T<FEN9R!S<6PI('1H<F]W<R!3
M44Q%>&-E<'1I;VX@>W)E='5R;B!M7U-Y8D-O;FYE8W1I;VXN;F%T:79E4U%,
M*'-Q;"D[?0T*(" @<'5B;&EC($-A;&QA8FQE4W1A=&5M96YT('!R97!A<F5#
M86QL*%-T<FEN9R!S<6PI('1H<F]W<R!344Q%>&-E<'1I;VX@>W)E='5R;B!M
M7U-Y8D-O;FYE8W1I;VXN<')E<&%R94-A;&PH<W%L*3M]#0H@("!P=6)L:6,@
M0V%L;&%B;&53=&%T96UE;G0@<')E<&%R94-A;&PH4W1R:6YG('-Q;"QI;G0@
M<F5S=6QT4V5T5'EP92QI;G0@<F5S=6QT4V5T0V]N8W5R<F5N8WDI('1H<F]W
M<R!344Q%>&-E<'1I;VX@>W)E='5R;B!M7U-Y8D-O;FYE8W1I;VXN<')E<&%R
M94-A;&PH<W%L+')E<W5L=%-E=%1Y<&4L<F5S=6QT4V5T0V]N8W5R<F5N8WDI
M.WT-"B @('!U8FQI8R!0<F5P87)E9%-T871E;65N="!P<F5P87)E4W1A=&5M
M96YT*%-T<FEN9R!S<6PI('1H<F]W<R!344Q%>&-E<'1I;VX@>W)E='5R;B!M
M7U-Y8D-O;FYE8W1I;VXN<')E<&%R95-T871E;65N="AS<6PI.WT-"B @('!U
M8FQI8R!0<F5P87)E9%-T871E;65N="!P<F5P87)E4W1A=&5M96YT*%-T<FEN
M9R!S<6PL:6YT(')E<W5L=%-E=%1Y<&4L:6YT(')E<W5L=%-E=$-O;F-U<G)E
M;F-Y*2!T:')O=W,@4U%,17AC97!T:6]N('MR971U<FX@;5]3>6)#;VYN96-T
M:6]N+G!R97!A<F53=&%T96UE;G0H<W%L+')E<W5L=%-E=%1Y<&4L<F5S=6QT
M4V5T0V]N8W5R<F5N8WDI.WT-"B @('!U8FQI8R!V;VED(')O;&QB86-K*"D@
M=&AR;W=S(%-13$5X8V5P=&EO;B![;5]3>6)#;VYN96-T:6]N+G)O;&QB86-K
M*"D[?0T*(" @<'5B;&EC('9O:60@<V5T0V%T86QO9RA3=')I;F<@8V%T86QO
M9RD@=&AR;W=S(%-13$5X8V5P=&EO;B![;5]3>6)#;VYN96-T:6]N+G-E=$-A
M=&%L;V<H8V%T86QO9RD[?0T*(" @<'5B;&EC('9O:60@<V5T4F5A9$]N;'DH
M8F]O;&5A;B!R96%D3VYL>2D@=&AR;W=S(%-13$5X8V5P=&EO;B![;5]3>6)#
M;VYN96-T:6]N+G-E=%)E861/;FQY*')E861/;FQY*3M]#0H@("!P=6)L:6,@
M=F]I9"!S9714<F%N<V%C=&EO;DES;VQA=&EO;BAI;G0@;&5V96PI('1H<F]W
M<R!344Q%>&-E<'1I;VX@>VU?4WEB0V]N;F5C=&EO;BYS9714<F%N<V%C=&EO
M;DES;VQA=&EO;BAL979E;"D[?0T*(" @<'5B;&EC('9O:60@<V5T5'EP94UA
M<"A-87 @;6%P*2!T:')O=W,@4U%,17AC97!T:6]N('MM7U-Y8D-O;FYE8W1I
;;VXN<V5T5'EP94UA<"AM87 I.WT-"GT-"@T*
`
end
----
To unsubscribe, send email to [EMAIL PROTECTED] and
include in the body of the message "unsubscribe jonas-users".
For general help, send email to [EMAIL PROTECTED] and
include in the body of the message "help".