Receber dados via socket

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Pessoal, tenho um servidor que irá enviar via socket dados de senha (número da senha de atendimento e nome da pessoa) via socket para o servidor Oracle e em teoria uma procedure (ou function) deveria ser acionada para executar o cadastramento desta senha de atendimento.

Minha maior dúvida, é possível fazer o Oracle receber esses dados via socket e acionar uma procedure? Alguém tem alguma dica de documentação sobre isso?

Obrigado.
Tinho
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 319
Registrado em: Seg, 16 Nov 2009 4:50 pm
Localização: São Paulo - SP

Pessoal, tenho um servidor que irá enviar via socket dados de senha (número da senha de atendimento e nome da pessoa) via socket para o servidor Oracle e em teoria uma procedure (ou function) deveria ser acionada para executar o cadastramento desta senha de atendimento.

Minha maior dúvida, é possível fazer o Oracle receber esses dados via socket e acionar uma procedure? Alguém tem alguma dica de documentação sobre isso?

--

Boa tarde amigo.

Eu vi alguma coisa de sockets mas quando trabalhava com Delphi. Isto remete ao uso de APIs do sistema operacional para trafegar pacote de dados via rede (TCP, UDP) na camada de transporte, portanto acredito que você deva conseguir isso utilizando o java.

Delimite o uso de recursos e tecnologia definindo bem o propósito, ou seja, do que se trata a aplicação? É um client/server, multicamadas web?

Como não conheço muito de protocolos de rede não vou prolongar muito, mas vi alguns artigos que talvez possam te ajudar a esclarecer.

http://www.oracle.com/technetwork/java ... tion.html

Ainda, pesquisando, me deparei com o seguinte pacote:

* UTL_TCP (Using TCP/IP Connections from PL/SQL Using the UTL_TCP package, a PL/SQL subprogram can open TCP/IP connections to systems on the network, and read or write to the corresponding sockets.);

Que segundo definições da Oracle você pode usá-lo para comunicações externas, conforme segue:

"With the UTL_TCP package and its procedures and functions, PL/SQL applications can communicate with external TCP/IP-based servers using TCP/IP. Because many Internet application protocols are based on TCP/IP, this package is useful to PL/SQL applications that use Internet protocols and e-mail."

http://docs.oracle.com/cd/B28359_01/ap ... u_tcp.htm

Posteriormente achei um artigo com um pequeno exemplo em PL/SQL:

Fonte:
http://kkempf.wordpress.com/2009/12/07 ... om-plsql/

Selecionar tudo


declare
 bt_conn               utl_tcp.connection;
 retval                binary_integer;
 l_sequence            varchar2(30) := 'Sequence Number 101021';
begin
 bt_conn := utl_tcp.open_connection(remote_host => '10.10.1.1'
                                   ,remote_port => 5000
                                   ,tx_timeout => 1
                                   )
 ;
 retval := utl_tcp.write_line(bt_conn,l_sequence)
 ;
 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
;
/


Espero ter ajudado.

Att.,
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes