Front page | perl.dbd.oracle.changes |
Postings from October 2011
[svn:dbd-oracle] r14948 - dbd-oracle/branches/FAN
From:
byterock
Date:
October 14, 2011 19:51
Subject:
[svn:dbd-oracle] r14948 - dbd-oracle/branches/FAN
Message ID:
20111015025123.1FBB0184B86@xx12.develooper.com
Author: byterock
Date: Fri Oct 14 19:51:21 2011
New Revision: 14948
Modified:
dbd-oracle/branches/FAN/dbdimp.c
dbd-oracle/branches/FAN/dbdimp.h
dbd-oracle/branches/FAN/oci8.c
Log:
a sort of working bit
Modified: dbd-oracle/branches/FAN/dbdimp.c
==============================================================================
--- dbd-oracle/branches/FAN/dbdimp.c (original)
+++ dbd-oracle/branches/FAN/dbdimp.c Fri Oct 14 19:51:21 2011
@@ -32,7 +32,6 @@
#endif
DBISTATE_DECLARE;
-
int ora_fetchtest; /* intrnal test only, not thread safe */
int is_extproc = 0; /* not ProC but ExtProc.pm */
int dbd_verbose = 0; /* DBD only debugging*/
@@ -203,7 +202,7 @@
int
dbd_discon_all(SV *drh, imp_drh_t *imp_drh)
{
- dTHR;
+
dTHX;
/* The disconnect_all concept is flawed and needs more work */
if (!PL_dirty && !SvTRUE(perl_get_sv("DBI::PERL_ENDING",0))) {
@@ -386,7 +385,7 @@
int
dbd_db_login6(SV *dbh, imp_dbh_t *imp_dbh, char *dbname, char *uid, char *pwd, SV *attr)
{
- dTHR;
+
dTHX;
sword status;
SV **svp;
@@ -438,6 +437,25 @@
else {
OCIAttrSet_log_stat(imp_dbh->seshp,OCI_HTYPE_SESSION,(text*)"DBDO1.28",7,OCI_ATTR_DRIVER_NAME,imp_dbh->errhp, status);
}
+
+ /* HA Events */
+
+ imp_dbh->using_ha = 0;
+
+ if (DBD_ATTRIB_TRUE(attr,"ora_ha",6,svp)){
+ imp_dbh->using_ha = 1;
+
+
+ if ((svp=DBD_ATTRIB_GET_SVP(attr, "ora_ha_function", 15)) && SvOK(*svp)) {
+ STRLEN svp_len;
+ if (!SvPOK(*svp))
+ croak("ora_ha_function is not a string");
+ imp_dbh->ha_function = (char *) SvPV (*svp, svp_len );
+
+ }
+ }
+
+
#endif /*ORA_OCI_112*/
if ((svp=DBD_ATTRIB_GET_SVP(attr, "ora_action", 10)) && SvOK(*svp)) {
@@ -478,6 +496,7 @@
}
/* TAF Events */
+
imp_dbh->using_taf = 0;
if (DBD_ATTRIB_TRUE(attr,"ora_taf",7,svp)){
@@ -588,14 +607,11 @@
dbd_verbose=15;
if (!imp_dbh->envhp ) {
SV **init_mode_sv;
- ub4 init_mode = OCI_EVENTS|OCI_OBJECT; /* needed for LOBs (8.0.4) */
- PerlIO_printf(DBILOGFP,"HA OCI_EVENTS=%d.\n", OCI_EVENTS);
- PerlIO_printf(DBILOGFP,"HA OCI_OBJECT=%d.\n",OCI_OBJECT);
+ ub4 init_mode = OCI_THREADED|OCI_EVENTS|OCI_OBJECT; /* needed for LOBs (8.0.4) */
DBD_ATTRIB_GET_IV(attr, "ora_init_mode",13, init_mode_sv, init_mode);
-PerlIO_printf(DBILOGFP,"HA init mode=%d.\n",init_mode);
- {
+ {
size_t rsize = 0;
/* Get CLIENT char and nchar charset id values */
OCINlsEnvironmentVariableGet_log_stat( &charsetid,(size_t) 0, OCI_NLS_CHARSET_ID, 0, &rsize ,status );
@@ -632,9 +648,11 @@
form attribute.
}*/
- OCIEnvNlsCreate_log_stat( &imp_dbh->envhp, init_mode, 0, NULL, NULL, NULL, 0, 0,
+ OCIEnvNlsCreate_log_stat( &imp_dbh->envhp,OCI_EVENTS|OCI_THREADED, (dvoid *) 0,(dvoid * (*)(dvoid *,size_t)) 0, (dvoid * (*)(dvoid *, dvoid *, size_t)) 0, (void (*)(dvoid *, dvoid *)) 0, (size_t)0, (dvoid **)0,
charsetid, ncharsetid, status );
+ PerlIO_printf(DBILOGFP, " well I am here 1\n");
+
if (status != OCI_SUCCESS) {
oci_error(dbh, NULL, status,
"OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var or PATH (Windows) and or NLS settings, permissions, etc.");
@@ -673,7 +691,8 @@
if (new_charsetid) charsetid = new_charsetid;
if (new_ncharsetid) ncharsetid = new_ncharsetid;
imp_dbh->envhp = NULL;
- OCIEnvNlsCreate_log_stat( &imp_dbh->envhp, init_mode, 0, NULL, NULL, NULL, 0, 0,
+PerlIO_printf(DBILOGFP, " well I am here 2\n");
+ OCIEnvNlsCreate_log_stat( &imp_dbh->envhp, OCI_EVENTS, 0, NULL, NULL, NULL, 0, 0,
charsetid, ncharsetid, status );
if (status != OCI_SUCCESS) {
oci_error(dbh, NULL, status,
@@ -896,15 +915,7 @@
/* set up TAF callback if wanted */
-
- status = reg_ha_callback(imp_dbh);
-
- if (status != OCI_SUCCESS) {
- oci_error(dbh, NULL, status,
- "Setting ha Callback Failed! ");
- return 0;
- }
-dbd_verbose=0;
+
if (imp_dbh->using_taf){
bool can_taf;
@@ -926,6 +937,26 @@
}
}
+#ifdef ORA_OCI_112
+ /* set up HA evnets callback if requested */
+
+ if (imp_dbh->using_ha){
+
+ if (DBIS->debug >= 4 || dbd_verbose >= 4 ) {
+ PerlIO_printf(DBILOGFP,"Setting up HA Event Callback!");
+ }
+
+ status = reg_ha_callback(imp_dbh);
+
+ if (status != OCI_SUCCESS) {
+ oci_error(dbh, NULL, status,
+ "Setting HA Event Callback Failed! ");
+ return 0;
+ }
+ }
+
+dbd_verbose =0;
+#endif /* ORA_OCI_112 */
return 1;
}
@@ -1027,7 +1058,7 @@
dbd_db_disconnect(SV *dbh, imp_dbh_t *imp_dbh)
{
dTHX;
- dTHR;
+
int refcnt = 1 ;
#if defined(USE_ITHREADS) && defined(PERL_MAGIC_shared_scalar)
@@ -1102,6 +1133,18 @@
}
#ifdef ORA_OCI_112
+
+ if (imp_dbh->using_ha){
+ OCIFocbkStruct ha_failover;
+ ha_failover.fo_ctx = NULL;
+ ha_failover.callback_function = NULL;
+ OCIAttrSet_log_stat(imp_dbh->srvhp, (ub4) OCI_HTYPE_SERVER,
+ (dvoid *) &ha_failover, (ub4) 0,
+ (ub4) OCI_ATTR_FOCBK, imp_dbh->errhp, status);
+
+ }
+
+
if (imp_dbh->using_drcp) {
OCIHandleFree_log_stat(imp_dbh->authp, OCI_HTYPE_SESSION,status);
OCISessionPoolDestroy_log_stat(imp_dbh->poolhp, imp_dbh->errhp,status);
@@ -1161,6 +1204,13 @@
else if (kl==13 && strEQ(key, "ora_drcp_incr") ) {
imp_dbh->pool_incr = SvIV (valuesv);
}
+ else if (kl==6 && strEQ(key, "ora_ha") ) {
+ imp_dbh->using_ha = 1;
+ }
+ else if (kl==15 && strEQ(key, "ora_ha_function") ) {
+ imp_dbh->ha_function = (char *) SvPV (valuesv, vl );
+ }
+
#endif
else if (kl==7 && strEQ(key, "ora_taf") ) {
imp_dbh->using_taf = 1;
@@ -1280,6 +1330,12 @@
else if (kl==13 && strEQ(key, "ora_drcp_incr") ) {
retsv = newSViv(imp_dbh->pool_incr);
}
+ else if (kl==6 && strEQ(key, "ora_ha") ) {
+ retsv = newSViv(imp_dbh->using_ha);
+ }
+ else if (kl==15 && strEQ(key, "ora_ha_function") ) {
+ retsv = newSVpv((char *)imp_dbh->ha_function,0);
+ }
#endif
else if (kl==7 && strEQ(key, "ora_taf") ) {
retsv = newSViv(imp_dbh->using_taf);
@@ -1357,7 +1413,7 @@
createxmlfromstring(SV *sth, imp_sth_t *imp_sth, SV *source){
dTHX;
- dTHR;
+
OCIXMLType *xml = NULL;
STRLEN len;
ub4 buflen;
@@ -1641,7 +1697,7 @@
int ora_realloc_phs_array(phs_t *phs,int newentries, int newbufsize){
dTHX;
- dTHR;
+
int i; /* Loop variable */
unsigned short *newal;
@@ -2608,7 +2664,7 @@
pp_rebind_ph_rset_in(SV *sth, imp_sth_t *imp_sth, phs_t *phs)
{
dTHX;
- dTHR;
+
SV * sth_csr = phs->sv;
D_impdata(imp_sth_csr, imp_sth_t, sth_csr);
sword status;
@@ -2715,7 +2771,7 @@
}
else { /* post-execute - setup the statement handle */
- dTHR;
+ dTHX;
SV * sth_csr = phs->sv;
D_impdata(imp_sth_csr, imp_sth_t, sth_csr);
@@ -2758,7 +2814,7 @@
static int
dbd_rebind_ph_xml( SV* sth, imp_sth_t *imp_sth, phs_t *phs) {
dTHX;
-dTHR;
+
OCIType *tdo = NULL;
sword status;
SV* ptr;
@@ -3261,7 +3317,7 @@
int
dbd_st_execute(SV *sth, imp_sth_t *imp_sth) /* <= -2:error, >=0:ok row count, (-1=unknown count) */
{
- dTHR;
+
dTHX;
ub4 row_count = 0;
int debug = DBIS->debug;
@@ -3588,7 +3644,7 @@
SV *err_count;
{
dTHX;
- dTHR;
+
ub4 row_count = 0;
int debug = DBIS->debug;
D_imp_dbh_from_sth;
@@ -3916,7 +3972,7 @@
int
dbd_st_finish(SV *sth, imp_sth_t *imp_sth)
{
- dTHR;
+
dTHX;
D_imp_dbh_from_sth;
sword status;
Modified: dbd-oracle/branches/FAN/dbdimp.h
==============================================================================
--- dbd-oracle/branches/FAN/dbdimp.h (original)
+++ dbd-oracle/branches/FAN/dbdimp.h Fri Oct 14 19:51:21 2011
@@ -1,17 +1,26 @@
/*
Copyright (c) 1994-2006 Tim Bunce
- Copyright (c) 2006-2008 John Scoles (The Pythian Group), Canada
-
+ Copyright (c) 2006-2011 John Scoles (The Pythian Group), Canada
+ Copyright (c) 2011 John Scoles
See the COPYRIGHT section in the Oracle.pm file for terms.
*/
/* ====== define data types ====== */
+typedef struct ha_context_st ha_context_t;
+
+struct ha_context_st {
+ PerlInterpreter *ct_perl;
+ char *function;
+};
+
+/*--------------------------TAF Callback Structure ---------------------*/
+
typedef struct taf_callback_st taf_callback_t;
struct taf_callback_st {
- char *function; /*User supplied TAF functiomn*/
+ char *function; /*User supplied perl TAF functiomn*/
int sleep;
};
@@ -57,9 +66,12 @@
ub4 pool_incr;
char *driver_name;/*driver name user defined*/
ub4 driver_namel;
+ bool using_ha;
+ ha_context_t *ha_context;
+ char *ha_function;
#endif
taf_callback_t *taf_callback;
- bool using_taf; /*TAF stuff*/
+ bool using_taf; /*TAF stuff*/
char *taf_function; /*User supplied TAF functiomn*/
int taf_sleep;
char *client_info; /*user defined*/
@@ -394,6 +406,7 @@
ub4 ora_db_version _((SV *dbh, imp_dbh_t *imp_dbh));
sb4 reg_taf_callback _((imp_dbh_t *imp_dbh));
+sb4 reg_ha_callback _((imp_dbh_t *imp_dbh));
/* These defines avoid name clashes for multiple statically linked DBD's */
Modified: dbd-oracle/branches/FAN/oci8.c
==============================================================================
--- dbd-oracle/branches/FAN/oci8.c (original)
+++ dbd-oracle/branches/FAN/oci8.c Fri Oct 14 19:51:21 2011
@@ -493,6 +493,8 @@
case OCI_ATTR_SESSION_STATE_CLEARED: return "OCI_ATTR_SESSION_STATE_CLEARED"; /* session state cleared*/
case OCI_ATTR_SESSION_MIGRATED: return "OCI_ATTR_SESSION_MIGRATED"; /* did session migrate*/
case OCI_ATTR_SESSION_PRESERVE_STATE: return "OCI_ATTR_SESSION_PRESERVE_STATE"; /* preserve session state */
+ case OCI_ATTR_EVTCBK: return "OCI_ATTR_EVTCBK"; /* ha callback */
+ case OCI_ATTR_EVTCTX: return "OCI_ATTR_EVTCTX";
#endif
#ifdef ORA_OCI_112
case OCI_ATTR_DRIVER_NAME: return "OCI_ATTR_DRIVER_NAME"; /* Driver Name */
@@ -1278,34 +1280,105 @@
void
-ha_cbk(dvoid *ha_ctx, OCIEvent *eventhp){
- dTHX;
- OCIServer *srvhp;
- OCIError *errhp;
- sb4 retcode;
- OraText *hostname;
- OraText *dbname;
- OraText *instname;
- OraText *svcname;
- OCIDate timestmp;
- OCIEnv *envhp = (OCIEnv *)ha_ctx;
- ub4 *sizep;
+hacb_fn( dvoid *ha_ctx, OCIEvent *eventhp) {
- if (dbd_verbose >= 5 ) {
- PerlIO_printf(DBILOGFP,"HA event received.\n");
- }
+ ha_context_t *ctx =(ha_context_t*)ha_ctx;
+ dTHXa(ctx->ct_perl);
+ //dTHX;
+ //dSP;
+// XPUSHs(sv_2mortal(newSViv(evtsource)));
+// XPUSHs(sv_2mortal(newSViv(evtstatus)));
+// PUTBACK;
+// OCIEnv *envhp = (OCIEnv *)ha_ctx;
+// imp_dbh_t *imp_dbh = (imp_dbh_t*)ha_ctx;
+// sword status;
+// OraText *instname;
+ // ub4 sizep;
+ ub4 atrlen;
+ ub4 evtsource, evtstatus;
+ ub4 dbsize, dbdmsize, hostsize, instsize, servicesize, dttmbufsize;
+ char *function;
+printf ("well this far 1\n\n");
+ PERL_SET_CONTEXT(ctx->ct_perl);
+PerlIO_printf(DBILOGFP, " how about this my functio %s",ctx->function);
+//PERL_SET_CONTEXT(my_perl);
+//ENTER;
+// SAVETMPS;
+
+// PUSHMARK(SP);
+//dSP;
+// PUSHMARK(SP);
+//PUTBACK;
+//printf ("well this far imp_dbh perl 1 imp_dbh=%p\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ",imp_dbh);
+//printf (" this is the p or pointer imp_drh->ha_function=%s ",(char *) imp_dbh->ha_function);
+
+ // sizep = strlen(imp_dbh->ha_function);
+ // function= (char*)safemalloc(strlen(imp_dbh->ha_function));
+ // strcpy((char *)function,imp_dbh->ha_function);
+//printf ("well this far imp_dbh perl function=%d \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ",sizep);
+
+
+// call_pv(cb->function);
+
+/*dbd_verbose=11;
+status = OCIAttrGet(eventhp, OCI_HTYPE_EVENT, (dvoid *)&evtsource,
+ (ub4 *)0,
+ OCI_ATTR_HA_SOURCE, imp_dbh->errhp);
+
+//OCI_ATTR_HA_SOURCE
+printf ("well this far status=%d\n\n\n",status);
+
+/* OCIAttrGet_log_stat(eventhp, OCI_HTYPE_EVENT, (dvoid *)&evtsource, 0, OCI_ATTR_HA_SOURCE, imp_dbh->errhp, status);
+dbd_verbose=0;
+
+//
+switch(evtsource)
+ {
+ case OCI_HA_SOURCE_INSTANCE:
+ printf("INSTANCE\n");
+ break;
+ case OCI_HA_SOURCE_DATABASE:
+ printf("DATABASE\n");
+ break;
+ case OCI_HA_SOURCE_NODE:
+ printf("NODE\n");
+ break;
+ case OCI_HA_SOURCE_SERVICE:
+ printf("SERVICE\n");
+ break;
+ case OCI_HA_SOURCE_SERVICE_MEMBER:
+ printf("SERVICE MEMBER\n");
+ break;
+ case OCI_HA_SOURCE_ASM_INSTANCE:
+ printf("ASM INSTANCE\n");
+ break;
+ case OCI_HA_SOURCE_SERVICE_PRECONNECT:
+ printf("SERVICE PRECONNECT\n");
+ break;
+ }
+
+/*
+ checkerr(errhp, OCIAttrGet(eventhp, OCI_HTYPE_EVENT, (dvoid *)&evtsource,
+ (ub4 *)0,
+ OCI_ATTR_HA_SOURCE, errhp));
+ */
+ /*checkerr(errhp, OCIAttrGet(eventhp, OCI_HTYPE_EVENT, (dvoid *)&evtstatus,
+ (ub4 *)0,
+ OCI_ATTR_HA_STATUS, errhp));
+**/
+//printf ("well this far evtsource=%d\n\n\n",evtsource);
+
+ //sleep(10);
- if (OCIHandleAlloc( (dvoid *)envhp, (dvoid **)&errhp,(ub4) OCI_HTYPE_ERROR,(size_t) 0, (dvoid **) 0))
- return;
- if (retcode = OCIAttrGet(eventhp, OCI_HTYPE_EVENT, (dvoid *)&srvhp, (ub4 *)0, OCI_ATTR_HA_SRVFIRST, errhp)) {
- PerlIO_printf(DBILOGFP,"error is %d.\n", retcode);
+/* if (retcode = OCIAttrGet(eventhp, OCI_HTYPE_EVENT, (dvoid *)&srvhp, (ub4 *)0, OCI_ATTR_HA_SRVFIRST, errhp)) {
+ printf(DBILOGFP,"error is %d.\n", retcode);
}
else{
PerlIO_printf(DBILOGFP,"found first server handle.\n");
/*get associated instance name, */
- if (retcode = OCIAttrGet(srvhp, OCI_HTYPE_SERVER, (dvoid *)&instname,(ub4 *)&sizep, OCI_ATTR_INSTNAME, errhp)){
+/* if (retcode = OCIAttrGet(srvhp, OCI_HTYPE_SERVER, (dvoid *)&instname,(ub4 *)&sizep, OCI_ATTR_INSTNAME, errhp)){
PerlIO_printf(DBILOGFP,"error is %d.\n", retcode);
}
else{
@@ -1322,7 +1395,7 @@
PerlIO_printf(DBILOGFP,"found another server handle.\n");
/*get associated instance name, */
- if (retcode = OCIAttrGet(srvhp, OCI_HTYPE_SERVER, (dvoid *)&instname,(ub4 *)&sizep, OCI_ATTR_INSTNAME, errhp)){
+/* if (retcode = OCIAttrGet(srvhp, OCI_HTYPE_SERVER, (dvoid *)&instname,(ub4 *)&sizep, OCI_ATTR_INSTNAME, errhp)){
PerlIO_printf(DBILOGFP,"error is %d.\n", retcode);
}
else {
@@ -1331,42 +1404,91 @@
}
}
OCIHandleFree((dvoid *)errhp, OCI_HTYPE_ERROR);
- PerlIO_printf(DBILOGFP,"Finished event callback function.\n");
- return;
-
+*/
+
}
-
+static char *myctx = (char *) "somthing borrowed";
sb4
reg_ha_callback( imp_dbh_t *imp_dbh)
{
- dTHX;
- sword status;
-/* taf_callback_t *cb = NULL;
-/*allocate space for the callback
- Newz(1, cb, 1, taf_callback_t);
- cb->function= (char*)safemalloc(strlen(imp_dbh->taf_function));
- cb->sleep = imp_dbh->taf_sleep;
- strcpy((char *)cb->function,imp_dbh->taf_function);
+ dTHX;
+ sword status;
+ ha_context_t *ctx = NULL;
+/*allocate space for the callback */
+ Newz(1, ctx, 1, ha_context_t);
+ ctx->function= (char*)safemalloc(strlen(imp_dbh->ha_function));
+ ctx->ct_perl = my_perl;
+ strcpy((char *)ctx->function,imp_dbh->ha_function);
+
+ /* OCIFocbkStruct ha_failover;
+ sword status;
+ ha_callback_t *cb = NULL;
+allocate space for the callback
+ Newz(1, cb, 1, ha_callback_t);
+ PerlIO_printf(DBILOGFP, " In reg_ha_callback 1 \n");
+
+ cb->function= (char*)safemalloc(strlen(imp_dbh->ha_function));
+ PerlIO_printf(DBILOGFP, " In reg_ha_callback 2 \n");
+
+ strcpy((char *)cb->function,imp_dbh->ha_function);
*/
- if (dbd_verbose >= 5 ) {
- PerlIO_printf(DBILOGFP, " In reg_ha_callback\n");
- }
- OCIAttrSet_log_stat(imp_dbh->envhp, (ub4) OCI_HTYPE_ENV,
+
+
+/* set the context up as a pointer to the taf callback struct*/
+/* static char *myctx = (char *) "some context"; */
+
+ PerlIO_printf(DBILOGFP, " In reg_ha_callback imp_dbh=%p\n",imp_dbh);
+ printf( " In reg_ha_callback as tring imp_dbh->ha_function=%s\n",imp_dbh->ha_function);
+ printf( " In reg_ha_callback as pointer imp_dbh->ha_function=%p\n",imp_dbh->ha_function);
+
+
+ /* OCIAttrSet_log_stat(imp_dbh->srvhp, OCI_HTYPE_SERVER,(dvoid *)&ha_failover ,0,OCI_ATTR_FOCBK, imp_dbh->errhp, status);*/
+
+/* PerlIO_printf(DBILOGFP, " In reg_ha_callback reg OCI_ATTR_FOCBK status=%d\n",status);
+
+ if (status != OCI_SUCCESS){
+ oci_error(imp_dbh, imp_dbh->errhp, status, "OCIAttrSet Failed to set register OCI_ATTR_FOCBK, HA callback");
+ return 0;
+ }
+ */
+ PerlIO_printf(DBILOGFP, " In reg_ha_callback reg OCI_ATTR_FOCBK =%d, OCI_ATTR_EVTCTX=%d\n",OCI_ATTR_EVTCBK,OCI_ATTR_EVTCTX);
+
+ OCIAttrSet_log_stat(imp_dbh->envhp, (ub4) OCI_HTYPE_ENV,(dvoid *)hacb_fn ,(ub4)0,(ub4)OCI_ATTR_EVTCBK, imp_dbh->errhp, status);
+
+ PerlIO_printf(DBILOGFP, " In reg_ha_callback reg OCI_ATTR_EVTCBK status=%d\n",status);
+/*
+ if (status != OCI_SUCCESS){
+ oci_error(imp_dbh, imp_dbh->errhp, status, "OCIAttrSet Failed to set register OCI_ATTR_EVTCTX, HA callback");
+
+ return 0;
+ }
+*/
+ OCIAttrSet_log_stat(imp_dbh->envhp, OCI_HTYPE_ENV,ctx,0,OCI_ATTR_EVTCTX, imp_dbh->errhp , status);
+PerlIO_printf(DBILOGFP, " In reg_ha_callback reg OCI_ATTR_EVTCX status=%d\n",status);
+/*
+ if (status != OCI_SUCCES
+ oci_error(imp_dbh, imp_dbh->errhp, status, "OCIAttrSet Failed to set register OCI_ATTR_EVTCTX, HA callback");
+ return 0;
+ }
+*/
+
+
+/* OCIAttrSet_log_stat(imp_dbh->envhp, (ub4) OCI_HTYPE_ENV,
(dvoid *) &ha_cbk, (ub4) 0,
(ub4) OCI_ATTR_EVTCBK, imp_dbh->errhp, status);
-/* if (status != OCI_SUCCESS){
+ if (status != OCI_SUCCESS){
oci_error(dbh, imp_dbh->errhp, status, "OCIAttrSet Failed to set register OCI_ATTR_EVTCBK, HA callback");
return 0;
}
-*/
+
OCIAttrSet_log_stat(imp_dbh->envhp, (ub4) OCI_HTYPE_ENV,
(dvoid *)imp_dbh->srvhp, (ub4) 0,
(ub4) OCI_ATTR_EVTCTX, imp_dbh->errhp, status);
- /* if (status != OCI_SUCCESS){
+ if (status != OCI_SUCCESS){
oci_error(dbh, imp_dbh->errhp, status, "OCIAttrSet Failed to set register OCI_ATTR_EVTCTX, HA callback context");
return 0;
}
@@ -1551,7 +1673,7 @@
if( sth ) { /* For GCC not to warn on unused parameter */ }
if (sth_nested) {
- dTHR;
+ dTHX;
D_impdata(imp_sth_nested, imp_sth_t, sth_nested);
int fields = DBIc_NUM_FIELDS(imp_sth_nested);
int i;
@@ -1575,7 +1697,7 @@
{
dTHX;
OCIStmt *stmhp_nested = ((OCIStmt **)fbh->fb_ary->abuf)[0];
- dTHR;
+
D_imp_sth(sth);
D_imp_dbh_from_sth;
dSP;
@@ -2780,7 +2902,7 @@
if (status==OCI_SUCCESS_WITH_INFO && !DBIc_has(fbh->imp_sth,DBIcf_LongTruncOk)){
- dTHR; /* for DBIc_ACTIVE_off */
+ dTHX; /* for DBIc_ACTIVE_off */
DBIc_ACTIVE_off(fbh->imp_sth); /* eg finish */
oci_error(sth, fbh->imp_sth->errhp, status, "OCIStmtFetch, LongReadLen too small and/or LongTruncOk not set");
}
@@ -3938,14 +4060,14 @@
ora_fetchtest = 0;
if (status == OCI_NO_DATA) {
- dTHR; /* for DBIc_ACTIVE_off */
+ dTHX; /* for DBIc_ACTIVE_off */
DBIc_ACTIVE_off(imp_sth); /* eg finish */
if (DBIS->debug >= 3 || dbd_verbose >= 3 || oci_warn)
PerlIO_printf(DBILOGFP, " dbd_st_fetch no-more-data, fetch count=%d\n",imp_sth->rs_fetch_count-1);
return Nullav;
}
if (status != OCI_SUCCESS_WITH_INFO) {
- dTHR; /* for DBIc_ACTIVE_off */
+ dTHX; /* for DBIc_ACTIVE_off */
DBIc_ACTIVE_off(imp_sth); /* eg finish */
oci_error(sth, imp_sth->errhp, status, "OCIStmtFetch");
return Nullav;
-
[svn:dbd-oracle] r14948 - dbd-oracle/branches/FAN
by byterock