[svn:dbd-oracle] r14889 - dbd-oracle/trunk

[email protected] Tue, 21 Jun 2011 00:50:41 -0700 (PDT)
Newsgroups perl.dbd.oracle.changes
Message-ID <[email protected]>
Author: mjevans
Date: Tue Jun 21 00:50:40 2011
New Revision: 14889

Modified:
   dbd-oracle/trunk/Changes
   dbd-oracle/trunk/dbdimp.c

Log:
Add patch supplied on rt68958 for OCIServerAttach errors


Modified: dbd-oracle/trunk/Changes
==============================================================================
--- dbd-oracle/trunk/Changes	(original)
+++ dbd-oracle/trunk/Changes	Tue Jun 21 00:50:40 2011
@@ -1,8 +1,10 @@
 =head1 Changes in DBD-Oracle 1.29_1 (svn rev NNNNN)
+****************************  NOTE: ora_db_shutdown/ora_dv_startup/StrictlyType/DiscardString not documented
 
+  Added patch supplied on rt68958 to trap OCIServerAttach errors by Martin J. Evans
   Added ora_db_shutdown and ora_db_startup private functions by Steffen Goeldner
   Fixed up the POD based on DBD::Pg by John Scoles 
-  Revoved oparse_lng as it is obsolete by John Scoles
+  Removed oparse_lang as it is obsolete by John Scoles
   Added installation notes for MAC Snow Leopard by Martin J. Evans
   pod review rephrasing, fixing typos and spelling mistakes up to "Placeholder Binding Attributes" by Martin J. Evans
   Add /etc to the search paths for tnsnames.ora (rt67942) by Martin J. Evans, Jay Senseman

Modified: dbd-oracle/trunk/dbdimp.c
==============================================================================
--- dbd-oracle/trunk/dbdimp.c	(original)
+++ dbd-oracle/trunk/dbdimp.c	Tue Jun 21 00:50:40 2011
@@ -828,6 +828,17 @@
 
 					OCIHandleAlloc_ok(imp_dbh->envhp, &imp_dbh->svchp, OCI_HTYPE_SVCCTX, status);
 					OCIServerAttach_log_stat(imp_dbh, dbname,OCI_DEFAULT, status);
+                    if (status != OCI_SUCCESS) {
+                        oci_error(dbh, imp_dbh->errhp, status, "OCIServerAttach");
+                        OCIHandleFree_log_stat(imp_dbh->seshp, OCI_HTYPE_SESSION,status);
+                        OCIHandleFree_log_stat(imp_dbh->srvhp, OCI_HTYPE_SERVER, status);
+                        OCIHandleFree_log_stat(imp_dbh->errhp, OCI_HTYPE_ERROR, status);
+                        OCIHandleFree_log_stat(imp_dbh->svchp, OCI_HTYPE_SVCCTX, status);
+                        if (forced_new_environment)
+                            OCIHandleFree_log_stat(imp_dbh->envhp, OCI_HTYPE_ENV, status);
+                        return 0;
+                    }
+
 
 					OCIAttrSet_log_stat( imp_dbh->svchp, OCI_HTYPE_SVCCTX, imp_dbh->srvhp,
 									(ub4) 0, OCI_ATTR_SERVER, imp_dbh->errhp, status);