Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0003098 [Quercus] block always 11-25-08 13:30 03-23-10 07:41
Reporter catkins View Status public  
Assigned To
Priority normal Resolution open Platform
Status new   OS
Projection none   OS Version
ETA none Fixed in Version Product Version 3.2.1
  Product Build
Summary 0003098: mysql_connect hostname substition by mangling jndi name
Description I have this string in the php:

mysql_connect("java:comp/env/jdbc/thecrossingchurch");

What happens is I get this error:

Warning: A link to the server could not be established. url=jdbc:mysql://java:3306/?characterEncoding=ISO8859_1 [^]

If I change the statement to:

mysql_connect("localhost");

Warning: A link to the server could not be established. url=jdbc:mysql://localhost:3306/?characterEncoding=ISO8859_1 [^]

In fact, I can change it to anything and have a similar result. However, if a non-word character is put in the string, then that appears to be the terminator as in the first example.

I get:



"jdbc/thecrossingchurch" is configured in resin.xml. I can confirm this by doing:

$conn = jndi_lookup("java:comp/env/jdbc/thecrossingchurch");
print $conn;

Which shows the name and this works as well:

$db = new PDO("java:comp/env/jdbc/thecrossingchurch");

Returning a connection, but the site design expect a mysql_connect and mysql_select_db call to setup a current database.

Steps To Reproduce
Additional Information
Attached Files

- Relationships

- Notes
(0003788)
obaltz
01-30-09 05:04

<?php
  
  $jndi_name = "java:comp/env/jdbc/cms";
  
  $conn = jndi_lookup( $jndi_name );
  var_dump( $conn );
  
  $link = mysql_connect( $jndi_name );
  var_dump( $link );
  
?>

outputs:

resource(DBPool[jdbc/cms])

/D:/Programme/resin/webapps/ACME/test.php:6: Warning: A link to the server could not be established.
  url=jdbc:mysql://java:3306/?characterEncoding=ISO8859_1&useOldAliasMetadataBehavior=true [^]
  driver=com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
  java.sql.SQLException: Unable to connect to any hosts due to exception: java.net.UnknownHostException: java

** BEGIN NESTED EXCEPTION **

java.net.UnknownHostException
MESSAGE: java

Could someone please care?
 
(0004389)
pablorg
01-19-10 15:05

I have the same problem with postgresql (pg_connect) and quercus 4.0.3

I can connect via PDO using the jndi name but I cannot connect using pg_connect with the jndi name
 
(0004475)
flushot
03-21-10 16:01

I'm experiencing the same problem with mysql_connect and mysql_pconnect.

I've had to revert from JNDI to using direct JDBC URIs to get my legacy PHP app working without having to rewrite a lot of code to use PDO instead.
 
(0004482)
posenato
03-23-10 07:41

I use resin 4.0.5, Postgresql 8.4.2 and PEAR.DB library.
I have found that the following configuration works:

in resin.xml: ...<database><jndi-name>jdbc/erw</jndi-name>...
in web.xml: ...<init><database>java:comp/env/jdbc/erw</database>...
in the PHP file:
<?php
...
$db = DB::connect('pgsql://java:comp/env/jdbc/erw'); [^]
...
?>

In other words, I have put 'pgsql://' [^] before the jndi name.
 

- Issue History
Date Modified Username Field Change
11-25-08 13:30 catkins New Issue
01-30-09 05:04 obaltz Note Added: 0003788
01-19-10 15:05 pablorg Note Added: 0004389
01-28-10 14:37 domdorn Issue Monitored: domdorn
03-21-10 00:02 flushot Issue Monitored: flushot
03-21-10 16:01 flushot Note Added: 0004475
03-23-10 07:41 posenato Note Added: 0004482


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
41 total queries executed.
33 unique queries executed.
Powered by Mantis Bugtracker