Re: Looking for clever solution: Different versions of Oracle .so files within single Perl build
On 2009-12-14 07:18:41 -0500, jeff wrote: I need to connect simultaneously to both Oracle 8 and oracle 10 from the same script using 'external' connection (ie, no username or password). The Oracle libraries, from my experimentations, are not compatible for external connections. Oracle 8 uses system ID and Oracle 10 uses wallet and they do not overlap. [...] Anyway, since Oracle DBD can only be built against 1 at a time , this presents a problem. I have been trying to use DBI Proxy in a PAR standalone for Oracle 8 connections and the usual setup for Oracle 10 connections with some limited success. What would be ideal would be to have 2 different Oracle DBD connections from within the same perl build. Any suggestions or ideas for potential solutions out there ? Split the script into two processes: One of them talks the Oracle 8 DB and the other one talks to the Oracle 10 DB. Let them communicate over a pipe or socket. hp -- _ | Peter J. Holzer| Auf jedem Computer sollte der Satz Ludwigs II |_|_) | Sysadmin WSR | eingeprägt stehen: Ein ewig Rätsel will ich | | | h...@wsr.ac.at | bleiben, mir und andern. __/ | http://www.hjp.at/ |-- Wolfram Heinrich in desd signature.asc Description: Digital signature
Re: Looking for clever solution: Different versions of Oracle .so files within single Perl build
Just reading about RMI - sounds promising :-) Thanks you very much. On Mon, 2009-12-14 at 20:09 -0600, Scott Smith wrote: Try RMI::Client::ForkedPipes. Have the child process use one lib, and the parent use the other. The child can give back with one DBI/DBD, and the parent can produce handles from the other. This is effectively the proxy solution, but you're just forking and proxying to a private sub-process you created. (Full disclosure: I wrote the RMI modules. If they break for you please email me.) Scott jeff wrote: You make an incorrect assumption :-( Not trying to fool anyone or hide my identity, just hoping for further input. If you don't want to answer, then don't - but there is no need to be nasty about it. You shouldn't view people so negatively. As it turns out, the proxyserver is not a solution and database links are not an option - Not allowed to create. On Mon, 2009-12-14 at 20:54 +0100, Alexander Foken wrote: OK, while you were busy creating new threads, I remembered that this problem was discussed some time ago on this mailing list. I was about to mail you a link to that discussion for further information, like http://www.mail-archive.com/dbi-users@perl.org/msg32448.html, but then I saw that that therad was also started by you. We gave you several pointers how to solve this problem, from using a specific oracle client over proxy solutions to database links. We told you that it is impossible to include two different Oracle client libraries into one process. And we told you that you do not need to include two different Oracle client libraries into one process. Now, you ask basically the same question again, hoping that no body remembered that thread startet two months ago. Well, I did, and it seems you are resistant to consulting, both from Oracle experts and from experienced DBI users. So, why do you waste our time? Alexander On 14.12.2009 13:18, jeff wrote: I need to connect simultaneously to both Oracle 8 and oracle 10 from the same script using 'external' connection (ie, no username or password). The Oracle libraries, from my experimentations, are not compatible for external connections. Oracle 8 uses system ID and Oracle 10 uses wallet and they do not overlap. I need to stress that this is NOT an option. I have no say in this regardless of how insecure it may sound. Anyway, since Oracle DBD can only be built against 1 at a time , this presents a problem. I have been trying to use DBI Proxy in a PAR standalone for Oracle 8 connections and the usual setup for Oracle 10 connections with some limited success. What would be ideal would be to have 2 different Oracle DBD connections from within the same perl build. Any suggestions or ideas for potential solutions out there ? Thanks. Jeff
Re: Looking for clever solution: Different versions of Oracle .so files within single Perl build
Scott, Would something like this be close: ## $c = RMI::Client::ForkedPipes-new(); $c-call_use_lib($ENV{MY_PERL_INSTALL}.'/some/path/to/other/Oracle_module'); # A build of Oracle DBD using oracle 8 client not normally in @INC $c-call_use('DBI'); $remote_dbh = $c-call_function('DBI::connect',dbi:Oracle:host= $host;sid=$sid, $user, $passwd); ## On Mon, 2009-12-14 at 20:09 -0600, Scott Smith wrote: Try RMI::Client::ForkedPipes. Have the child process use one lib, and the parent use the other. The child can give back with one DBI/DBD, and the parent can produce handles from the other. This is effectively the proxy solution, but you're just forking and proxying to a private sub-process you created. (Full disclosure: I wrote the RMI modules. If they break for you please email me.) Scott
Re: Looking for clever solution: Different versions of Oracle .so files within single Perl build
Try RMI::Client::ForkedPipes. Have the child process use one lib, and the parent use the other. The child can give back with one DBI/DBD, and the parent can produce handles from the other. This is effectively the proxy solution, but you're just forking and proxying to a private sub-process you created. (Full disclosure: I wrote the RMI modules. If they break for you please email me.) Scott jeff wrote: You make an incorrect assumption :-( Not trying to fool anyone or hide my identity, just hoping for further input. If you don't want to answer, then don't - but there is no need to be nasty about it. You shouldn't view people so negatively. As it turns out, the proxyserver is not a solution and database links are not an option - Not allowed to create. On Mon, 2009-12-14 at 20:54 +0100, Alexander Foken wrote: OK, while you were busy creating new threads, I remembered that this problem was discussed some time ago on this mailing list. I was about to mail you a link to that discussion for further information, like http://www.mail-archive.com/dbi-users@perl.org/msg32448.html, but then I saw that that therad was also started by you. We gave you several pointers how to solve this problem, from using a specific oracle client over proxy solutions to database links. We told you that it is impossible to include two different Oracle client libraries into one process. And we told you that you do not need to include two different Oracle client libraries into one process. Now, you ask basically the same question again, hoping that no body remembered that thread startet two months ago. Well, I did, and it seems you are resistant to consulting, both from Oracle experts and from experienced DBI users. So, why do you waste our time? Alexander On 14.12.2009 13:18, jeff wrote: I need to connect simultaneously to both Oracle 8 and oracle 10 from the same script using 'external' connection (ie, no username or password). The Oracle libraries, from my experimentations, are not compatible for external connections. Oracle 8 uses system ID and Oracle 10 uses wallet and they do not overlap. I need to stress that this is NOT an option. I have no say in this regardless of how insecure it may sound. Anyway, since Oracle DBD can only be built against 1 at a time , this presents a problem. I have been trying to use DBI Proxy in a PAR standalone for Oracle 8 connections and the usual setup for Oracle 10 connections with some limited success. What would be ideal would be to have 2 different Oracle DBD connections from within the same perl build. Any suggestions or ideas for potential solutions out there ? Thanks. Jeff
Re: Looking for clever solution: Different versions of Oracle .so files within single Perl build
You need only one client version to connect to both 8 and 10, preferably the newer 10 client. It shuld work in 99.9% of all cases. If that doesn't work, try 8. If that still does not work, try 9. Alexander On 14.12.2009 13:18, jeff wrote: I need to connect simultaneously to both Oracle 8 and oracle 10 from the same script using 'external' connection (ie, no username or password). The Oracle libraries, from my experimentations, are not compatible for external connections. Oracle 8 uses system ID and Oracle 10 uses wallet and they do not overlap. I need to stress that this is NOT an option. I have no say in this regardless of how insecure it may sound. Anyway, since Oracle DBD can only be built against 1 at a time , this presents a problem. I have been trying to use DBI Proxy in a PAR standalone for Oracle 8 connections and the usual setup for Oracle 10 connections with some limited success. What would be ideal would be to have 2 different Oracle DBD connections from within the same perl build. Any suggestions or ideas for potential solutions out there ? Thanks. Jeff -- Alexander Foken mailto:alexan...@foken.de http://www.foken.de/alexander/
Re: Looking for clever solution: Different versions of Oracle .so files within single Perl build
External connect ( no username or password needed ) ? What I've tried so far: I built against Oracle 8 client and external connection ( based on system id ) works only for oracle 8 - oracle 10 uses a wallet. Then I built against oracle 10 - worked with wallet (external connection) but not an external connection on oracle 8 ( system id based ). Currently trying to keep in separate processes by using oracle 8 build in stand-alone DBI proxy server for 8 and using regular oracle dbi build in current perl for oracle 10. This works somewhat - except the 'prepare' is apparently postponed so no values are returned and I need those values ( column names and types ). So is there a hack to get 2 oracle dbd build ( called by different names ) in the same perl build ? On Mon, 2009-12-14 at 16:27 +0100, Alexander Foken wrote: You need only one client version to connect to both 8 and 10, preferably the newer 10 client. It shuld work in 99.9% of all cases. If that doesn't work, try 8. If that still does not work, try 9. Alexander On 14.12.2009 13:18, jeff wrote: I need to connect simultaneously to both Oracle 8 and oracle 10 from the same script using 'external' connection (ie, no username or password). The Oracle libraries, from my experimentations, are not compatible for external connections. Oracle 8 uses system ID and Oracle 10 uses wallet and they do not overlap. I need to stress that this is NOT an option. I have no say in this regardless of how insecure it may sound. Anyway, since Oracle DBD can only be built against 1 at a time , this presents a problem. I have been trying to use DBI Proxy in a PAR standalone for Oracle 8 connections and the usual setup for Oracle 10 connections with some limited success. What would be ideal would be to have 2 different Oracle DBD connections from within the same perl build. Any suggestions or ideas for potential solutions out there ? Thanks. Jeff
RE: Looking for clever solution: Different versions of Oracle .so files within single Perl build
Have you considered using database links? Instead of 2 connections, you could just do everything thru oracle 10. -Original Message- From: jeff [mailto:j...@roqc.no] Sent: Monday, December 14, 2009 5:19 AM To: dbi-users@perl.org Subject: Looking for clever solution: Different versions of Oracle .so files within single Perl build I need to connect simultaneously to both Oracle 8 and oracle 10 from the same script using 'external' connection (ie, no username or password). The Oracle libraries, from my experimentations, are not compatible for external connections. Oracle 8 uses system ID and Oracle 10 uses wallet and they do not overlap. I need to stress that this is NOT an option. I have no say in this regardless of how insecure it may sound. Anyway, since Oracle DBD can only be built against 1 at a time , this presents a problem. I have been trying to use DBI Proxy in a PAR standalone for Oracle 8 connections and the usual setup for Oracle 10 connections with some limited success. What would be ideal would be to have 2 different Oracle DBD connections from within the same perl build. Any suggestions or ideas for potential solutions out there ? Thanks. Jeff
Re: Looking for clever solution: Different versions of Oracle .so files within single Perl build
OK, while you were busy creating new threads, I remembered that this problem was discussed some time ago on this mailing list. I was about to mail you a link to that discussion for further information, like http://www.mail-archive.com/dbi-users@perl.org/msg32448.html, but then I saw that that therad was also started by you. We gave you several pointers how to solve this problem, from using a specific oracle client over proxy solutions to database links. We told you that it is impossible to include two different Oracle client libraries into one process. And we told you that you do not need to include two different Oracle client libraries into one process. Now, you ask basically the same question again, hoping that no body remembered that thread startet two months ago. Well, I did, and it seems you are resistant to consulting, both from Oracle experts and from experienced DBI users. So, why do you waste our time? Alexander On 14.12.2009 13:18, jeff wrote: I need to connect simultaneously to both Oracle 8 and oracle 10 from the same script using 'external' connection (ie, no username or password). The Oracle libraries, from my experimentations, are not compatible for external connections. Oracle 8 uses system ID and Oracle 10 uses wallet and they do not overlap. I need to stress that this is NOT an option. I have no say in this regardless of how insecure it may sound. Anyway, since Oracle DBD can only be built against 1 at a time , this presents a problem. I have been trying to use DBI Proxy in a PAR standalone for Oracle 8 connections and the usual setup for Oracle 10 connections with some limited success. What would be ideal would be to have 2 different Oracle DBD connections from within the same perl build. Any suggestions or ideas for potential solutions out there ? Thanks. Jeff -- Alexander Foken mailto:alexan...@foken.de http://www.foken.de/alexander/
Re: Looking for clever solution: Different versions of Oracle .so files within single Perl build
You make an incorrect assumption :-( Not trying to fool anyone or hide my identity, just hoping for further input. If you don't want to answer, then don't - but there is no need to be nasty about it. You shouldn't view people so negatively. As it turns out, the proxyserver is not a solution and database links are not an option - Not allowed to create. On Mon, 2009-12-14 at 20:54 +0100, Alexander Foken wrote: OK, while you were busy creating new threads, I remembered that this problem was discussed some time ago on this mailing list. I was about to mail you a link to that discussion for further information, like http://www.mail-archive.com/dbi-users@perl.org/msg32448.html, but then I saw that that therad was also started by you. We gave you several pointers how to solve this problem, from using a specific oracle client over proxy solutions to database links. We told you that it is impossible to include two different Oracle client libraries into one process. And we told you that you do not need to include two different Oracle client libraries into one process. Now, you ask basically the same question again, hoping that no body remembered that thread startet two months ago. Well, I did, and it seems you are resistant to consulting, both from Oracle experts and from experienced DBI users. So, why do you waste our time? Alexander On 14.12.2009 13:18, jeff wrote: I need to connect simultaneously to both Oracle 8 and oracle 10 from the same script using 'external' connection (ie, no username or password). The Oracle libraries, from my experimentations, are not compatible for external connections. Oracle 8 uses system ID and Oracle 10 uses wallet and they do not overlap. I need to stress that this is NOT an option. I have no say in this regardless of how insecure it may sound. Anyway, since Oracle DBD can only be built against 1 at a time , this presents a problem. I have been trying to use DBI Proxy in a PAR standalone for Oracle 8 connections and the usual setup for Oracle 10 connections with some limited success. What would be ideal would be to have 2 different Oracle DBD connections from within the same perl build. Any suggestions or ideas for potential solutions out there ? Thanks. Jeff