• Sábado 21 de Diciembre de 2024, 17:09

Autor Tema:  Hilos Y Conexiones Compartidas (ora_dbh_share)  (Leído 4713 veces)

Podwor

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Hilos Y Conexiones Compartidas (ora_dbh_share)
« en: Miércoles 17 de Agosto de 2005, 14:55 »
0
Buenos dias a todos!! Tengo un problemilla como dira Flanders.......

Bueno estoy haciendo un programita que tiene que varios hilos (1 a 2000 ) dependiendo los clientes y necesito usar una misma conexion a la base de datos ya
que oracle se enfadaria mucho si abro una conexion por cada hilo!
Los hilos de mi programa con una conexion por hilo funciona bien pero como lo dije
antes no es factible.
Cuando usamos la misma conexion  para todos los hilos sale el siguiente error ( por supuesto!!)

(handles can't be shared between threads and your driver may need a CLONE method added )

Esta claro, pero aqui va el problema, no conozco ningun metodo CLONE para oracle en perl. Buscando un poquito encontre lo que parecia la solucion  ....  ora_dbh_share
que segun la documentacion me permitira compartir una conexion entre mis hilos.
El ejemplo que encontre de conexion es el siguiente

  our $orashr : shared = '' ;
  $dbh = DBI->connect ($dsn, $user, $passwd, {ora_dbh_share => \$orashr}) ;

Muy simple, pero ..... no funciona. Me da errores de compilacion cuando lo pongo en mi programa

our $ops : shared = '' ;
$dbh = DBI->connect("dbi:Oracle:xxxl","xxx/xxx",  { ora_dbh_share => \$ops }  ) or die " Not concected tu oracle\n";

El pedacito de codigo { ora_dbh_share => \$ops } es como si no lo reconociera como parte del DBI-> connect.  

Busque ejemplos en internet pero nada, solo trae muy pocas paginas que muestran el mismo ejemplito de conexion pero nada que pueda usar.

Si alguien tiene algo que me pueda ayudar les agradeceria enormemente.
Saludos

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Hilos Y Conexiones Compartidas (ora_dbh_share)
« Respuesta #1 en: Sábado 20 de Agosto de 2005, 00:08 »
0
http://search.cpan.org/~timb/DBD-Oracle-1.16/Oraperl.pm  ;)


our $orashr : shared = '';

$dbh = DBI->connect ($dsn, $user, $passwd, {ora_dbh_share => \$orashr});
our $ops : shared = '';

$dbh = DBI->connect("dbi:Oracle:xxxl","xxx/xxx", { ora_dbh_share => \$ops } ) or die " Not concected tu oracle\n";


no seraste our $orash : shared = "; tefalto un " antes de ; ?
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Podwor

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Hilos Y Conexiones Compartidas (ora_dbh_share)
« Respuesta #2 en: Sábado 20 de Agosto de 2005, 15:48 »
0
Antes que nada muchas gracias su -  
Creo que si cere mi variable, lo que pasa es que use comillas simples

our $orashr : shared = '';

que en el foro parecen que es una sola comilla doble. Pero de todas formas lo intente
asi

our $ops : shared = "";

y el problema es el mismo

Prototype mismatch: sub main::cond_wait: none vs (\[$@%];\[$@%]) at c:/Perl/lib/
Exporter.pm line 65.
Usage: $class->connect([$dsn [,$user [,$passwd [,\%attr]]]])

El problema es con la conexion, no puedo establecerla.
su -  no tendrias problema en ponerme entre tus contactos para pedirte SOCORRO!
Muchas gracias!

cellilli@hotmail.com

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Hilos Y Conexiones Compartidas (ora_dbh_share)
« Respuesta #3 en: Sábado 20 de Agosto de 2005, 20:37 »
0
Hola Podwor.
Mira, lametablemente no se de Oracle pero te dejo esta informacion:

Needs at least Perl 5.8.0 compiled with ithreads. Allows to share database
connections between threads. The first connect will make the connection,
all following calls to connect with the same ora_dbh_share attribute
will use the same database connection. The value must be a reference
to a already shared scalar which is initialized to an empty string.

Para saber mas ejecuta perldoc DBD::Oracle
Ya te añadi a mi lista de contactos   :D
 :hola:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Podwor

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Hilos Y Conexiones Compartidas (ora_dbh_share)
« Respuesta #4 en: Lunes 22 de Agosto de 2005, 17:20 »
0
Ok muchas gracias!! ah!!! no  te veo aun entre mis contactos!!!

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Hilos Y Conexiones Compartidas (ora_dbh_share)
« Respuesta #5 en: Lunes 22 de Agosto de 2005, 22:03 »
0
Citar
Ok muchas gracias!! ah!!! no te veo aun entre mis contactos!!!
     1) Con gusto  :D .
      2) Sepronto es porque eres muy nuevo y no tienes permiso para el "Mensajero".
Sigue posteando, para cualquier duda :yes:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Hilos Y Conexiones Compartidas (ora_dbh_share)
« Respuesta #6 en: Martes 20 de Septiembre de 2005, 01:54 »
0
:o  Ha!!!
Mira no me fije, el problema quizas sea este:
Usage: $class->connect([$dsn [,$user [,$passwd [,\%attr]]]])
$dns        = "dbi:Oracle:xxxl"
$usr         = "xxx/xxx"
$passwd = ?
\%attr      = { ora_dbh_share => \$ops }
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Podwor

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Hilos Y Conexiones Compartidas (ora_dbh_share)
« Respuesta #7 en: Martes 20 de Septiembre de 2005, 19:05 »
0
muchas gracias!!