Multithreading 使用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(

如何找到使用utl_tcp打开的套接字数。 使用下面的代码,我可以从服务器获得响应,但我想使用多线程。请告诉我是否有任何工具或实用程序,或者我如何更新代码,以确定端口上服务器支持多少线程

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提供的修补程序解决了这个问题。 看

/约根