I'm trying to get DBD::Proxy to work under Win32 to allow me to talk to
a SQL Server 7 database.

I can connect to the database directly under Win32 using DBD::ODBC and
DBD::ADO, but when I configure up to use DBD::Proxy, the client just
hangs when it tries to connect.


Server output:
C:\>dbiproxy --configfile c:\dbiproxy.conf
Tue Oct 29 09:59:40 2002 debug, 0, Server starting in operation mode
threads
Tue Oct 29 09:59:40 2002 notice, 0, Server starting
Tue Oct 29 09:59:40 2002 debug, 0, Writing PID to c:/temp/dbiproxy.pid
Tue Oct 29 09:59:46 2002 debug, 0, Connection from 193.32.60.39, port
3388
Tue Oct 29 09:59:46 2002 debug, 0, Child clone:
DBI::ProxyServer=HASH(0x1e3e9c4)


Tue Oct 29 09:59:49 2002 debug, 1, New child starting
(DBI::ProxyServer=HASH(0x2
760d6c)).
Tue Oct 29 09:59:49 2002 debug, 1, Accepting client from 193.32.60.39,
port 3388
[client hangs at this point]



If I try running the same client script under Linux, the client crashes
with the following error:

$ perl client_proxy3.pl 
About to connect...
DBI->connect(hostname=193.32.60.39;port=3333;dsn=dbi:ODBC:OT_TEST_1)
failed: Cannot log in to DBI::ProxyServer: Unexpected EOF from server
at /usr/local/lib/perl5/site_perl/5.6.0/RPC/PlClient.pm line 83.
 at client_proxy3.pl line 9
$


While the server reports:
C:\>dbiproxy --configfile c:\dbiproxy.conf
Tue Oct 29 09:58:58 2002 debug, 0, Server starting in operation mode
threads
Tue Oct 29 09:58:58 2002 notice, 0, Server starting
Tue Oct 29 09:58:58 2002 debug, 0, Writing PID to c:/temp/dbiproxy.pid
Tue Oct 29 09:58:59 2002 debug, 0, Connection from 193.32.60.31, port
2157
Tue Oct 29 09:58:59 2002 debug, 0, Child clone:
DBI::ProxyServer=HASH(0x1e3e9c4)


Tue Oct 29 09:59:02 2002 debug, 1, New child starting
(DBI::ProxyServer=HASH(0x2
760d6c)).
Tue Oct 29 09:59:02 2002 debug, 1, Accepting client from 193.32.60.31,
port 2157

Tue Oct 29 09:59:02 2002 debug, 1, Client logs in: Application
dbi:ODBC:OT_TEST_
1, version 0.2003, user ot_test_user_1
Tue Oct 29 09:59:02 2002 debug, 1, Connecting to dbi:ODBC:OT_TEST_1 as
ot_test_u
ser_1
Tue Oct 29 09:59:02 2002 debug, 1, Accepting client
Tue Oct 29 09:59:02 2002 debug, 1, Child terminating.



Changing from ODBC to ADO makes no difference.

Changing from mode=>threads to mode=>single makes no difference.

Changing from mode=>threads to mode=>fork causes the server to crash
completely.



Perl configuration: 

  perl 5.8.0
  DBD-ADO-2_5
  DBD-ODBC-0_43
  DBI-1_30
  libwin32-0_191
  Net-Daemon-0_37
  PlRPC-0_2016


-- begin client script --
use DBI;
use DBD::Proxy;


print "About to connect...\n";

my $dsn   = 'dbi:ODBC:OT_TEST_1';
my $proxy = 'hostname=193.32.60.39;port=3333';
my $dbh = DBI->connect( "dbi:Proxy:$proxy;dsn=$dsn", 'ot_test_user_1',
'password' );


print "Connected.\n";
print "DBH=$dbh\n";

print "About to disconnect...\n";

$dbh->disconnect;

print "Finished.\n";

-- end client script --



-- begin proxy config file --
require DBD::ODBC;
require DBD::ADO;

{ 
    'localport' => 3333,
    'pidfile' => 'c:/temp/dbiproxy.pid',
    'logfile' => 1,
    'debug' => 100,
    'mode' => 'threads',
    'timeout' => 60,
    'clients' => [ 
      { 
        'mask' => '^lowery-t$',
        'accept' => 1
      },
      { 
        'mask' => '^localhost$',
        'accept' => 1
      },
      { 
        'mask' => '^193.32.60.39$',
        'accept' => 1 
      },
      { 
        'mask' => '193.32.60.39',
        'accept' => 1 
      },
      { 
        'mask' => '^193.32.60.31$',
        'accept' => 1
      },
      { 
        'mask' => '193.32.60.31',
        'accept' => 1
      },
      { 
        'mask' => '.*',
        'accept' => 1 
      }
    ]
} 

-- end proxy config file --






Reply via email to