Multithreading 使用utl_tcp的套接字连接
如何找到使用utl_tcp打开的套接字数。 使用下面的代码,我可以从服务器获得响应,但我想使用多线程。请告诉我是否有任何工具或实用程序,或者我如何更新代码,以确定端口上服务器支持多少线程Multithreading 使用utl_tcp的套接字连接,multithreading,sockets,plsql,Multithreading,Sockets,Plsql,如何找到使用utl_tcp打开的套接字数。 使用下面的代码,我可以从服务器获得响应,但我想使用多线程。请告诉我是否有任何工具或实用程序,或者我如何更新代码,以确定端口上服务器支持多少线程 create or replace PROCEDURE KLMestk11 IS bt_conn utl_tcp.CONNECTION; retval binary_integer; l_sequence varchar2(
create or replace
PROCEDURE KLMestk11 IS
bt_conn utl_tcp.CONNECTION;
retval binary_integer;
l_sequence varchar2(250) := ' 1235kl5pl70406mnbv78000000013121310000051 000000850910334640000524126927082700000000009000000000000000000mkp29112013*TESTING *T000000000000057007760847T000000000000057007760847T0000000057007760847';
l_sequence1 varchar2(250) := ' 1235kl5pl70406mnbv78000000013121310000052 000000850910334640000524126927082700000000009000000000000000000mkp29112013*TESTING *T000000000000057007760847T000000000000057007760847T0000000057007760847';
l_sequence2 varchar2(250) := ' 1235kl5pl70406mnbv78000000013121310000053 000000970910334640000524126927082700000000009000000000000000000mkp29112013*TESTING *T000000000000057007760847T000000000000057007760847T0000000057007760847';
l_sequence3 varchar2(250) := ' 1235kl5pl70406mnbv78000000013121310000054 000000850910334640000524126927082700000000009000000000000000000mkp29112013*TESTING *T000000000000057007760847T000000000000057007760847T0000000057007760847';
l_sequence4 varchar2(250) := ' 1235kl5pl70406mnbv78000000013121310000055 000000850910334640000524126927082700000000009000000000000000000mkp29112013*TESTING *T000000000000057007760847T000000000000057007760847T0000000057007760847';
s_time TIMESTAMP;
e_time TIMESTAMP;
BEGIN
s_time := CURRENT_TIMESTAMP;
dbms_output.put_line('Start Time:'||s_time);
bt_conn := utl_tcp.open_connection(remote_host => '50.0.16.901'
,remote_port => 5423
,tx_timeout => 1
);
retval := utl_tcp.write_line(bt_conn,l_sequence);
dbms_output.put_line(utl_tcp.get_line(bt_conn, TRUE));
utl_tcp.FLUSH(bt_conn);
utl_tcp.close_connection(bt_conn);
bt_conn := utl_tcp.open_connection(remote_host => '50.0.16.901'
,remote_port => 5423
,tx_timeout => 1
);
retval := utl_tcp.write_line(bt_conn,l_sequence1);
dbms_output.put_line(utl_tcp.get_line(bt_conn, TRUE));
utl_tcp.FLUSH(bt_conn);
utl_tcp.close_connection(bt_conn);
bt_conn := utl_tcp.open_connection(remote_host => '50.0.16.901'
,remote_port => 5423
,tx_timeout => 1
);
retval := utl_tcp.write_line(bt_conn,l_sequence4);
dbms_output.put_line(utl_tcp.get_line(bt_conn, TRUE));
e_time := CURRENT_TIMESTAMP;
dbms_output.put_line('End Time:'||e_time);
dbms_output.put_line('Duration:'||timestamp_diff(s_time,e_time));
utl_tcp.FLUSH(bt_conn);
utl_tcp.close_connection(bt_conn);
EXCEPTION
WHEN others THEN
raise_application_error(-20101, sqlerrm);
utl_tcp.close_connection(bt_conn);
END;
utl_tcp包中有16个连接的限制。也许是Oracle提供的修补程序解决了这个问题。 看 /约根