cancel
Showing results for 
Search instead for 
Did you mean: 

ASA: implicit commit after each call proxy procedure

Former Member
6,772

Looks like a call of proxy procedure in any case runs in autocommit mode on remote server side. How to call a procedure in a distributed transaction mode?

Test Environment (tested in each one combination):

Operation System:

  • Windows Server Standart 2008 x64

SQL Anywhere Server:

  • ASA x64 9.0.2.3951
  • ASA x64 10.0.1.4239
  • ASA x64 11.0.1.2680
  • ASA x64 12.0.1.3457

Remote Database:

  • Oracle 10 / 11
  • Sybase ASE 12.5 / 15.5

Oracle ODBC driver:

  • iAnywhere Solutions 12 - Oracle
  • Oracle in OraClient11g_home1

Test SQL on the Oracle:

create table t_remote_call_param ( param_value varchar(32) );
create procedure t_remote_proc ( param varchar2 )
is
begin
    insert into t_remote_call_param ( param_value ) values ( param );
end;

Test SQL on the ASA:

create server "oracle_odbc" class 'ORAODBC' using 'oracle_odbc_x64';

create existing table t_proxy_call_param at 'oracle_odbc;;dbname;t_remote_call_param';
create procedure t_proxy_to_oracle( @param varchar(32) ) at 'oracle_odbc;;dbname;t_remote_proc';

select * from t_proxy_call_param;
/*
    output (0 rows selected😞
    -------
    PARAM_VALUE
    -----------
*/

begin tran;
call t_proxy_to_oracle( 'qwerty123' );
rollback;

select * from t_proxy_call_param;
/*
    output (1 rows selected😞
    -------
    PARAM_VALUE
    -----------
    qwerty123
*/

Accepted Solutions (0)

Answers (0)