[svn:dbd-oracle] r14969 - dbd-oracle/branches/FAN

[email protected] Fri, 28 Oct 2011 13:22:57 -0700 (PDT)
Newsgroups perl.dbd.oracle.changes
Message-ID <[email protected]>
Author: byterock
Date: Fri Oct 28 13:22:56 2011
New Revision: 14969

Modified:
   dbd-oracle/branches/FAN/dbdimp.c
   dbd-oracle/branches/FAN/oci8.c

Log:
regular commit

Modified: dbd-oracle/branches/FAN/dbdimp.c
==============================================================================
--- dbd-oracle/branches/FAN/dbdimp.c	(original)
+++ dbd-oracle/branches/FAN/dbdimp.c	Fri Oct 28 13:22:56 2011
@@ -522,7 +522,7 @@
 	if (DBD_ATTRIB_TRUE(attr,"ora_verbose",11,svp))
 		DBD_ATTRIB_GET_IV(  attr, "ora_verbose",  11, svp, dbd_verbose);
 
-
+dbd_verbose=15;
 	/* check to see if success_warn is set. This will */
 	/* warn after some sucessfull operations for tuning results */
 	if (DBD_ATTRIB_TRUE(attr,"ora_oci_success_warn",20,svp))
@@ -647,7 +647,7 @@
 			form attribute.
 			}*/
 
-			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,
+			OCIEnvNlsCreate_log_stat( &imp_dbh->envhp,init_mode,  (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");
@@ -757,7 +757,7 @@
 #endif
 	}
 
-	if (!shared_dbh) {
+        if (!shared_dbh) {
 
 		OCIHandleAlloc_ok(imp_dbh->envhp, &imp_dbh->srvhp, OCI_HTYPE_SERVER, status);
 
@@ -862,7 +862,7 @@
 
 					cred_type = ora_parse_uid(imp_dbh, &uid, &pwd);
 
-					OCISessionBegin_log_stat( imp_dbh->svchp, imp_dbh->errhp, imp_dbh->seshp,cred_type, sess_mode_type, status);
+					OCISessionBegin_log_stat( imp_dbh->svchp, imp_dbh->errhp, imp_dbh->seshp,cred_type,sess_mode_type, status);
 
 					if (status == OCI_SUCCESS_WITH_INFO) {
 						/* eg ORA-28011: the account will expire soon; change your password now */

Modified: dbd-oracle/branches/FAN/oci8.c
==============================================================================
--- dbd-oracle/branches/FAN/oci8.c	(original)
+++ dbd-oracle/branches/FAN/oci8.c	Fri Oct 28 13:22:56 2011
@@ -1299,14 +1299,10 @@
 
 }
 
+void 
+event_info ( imp_dbh_t *imp_dbh, OCIEvent *eventhp) {
 
-void
-hacb_fn( dvoid *ha_ctx, OCIEvent *eventhp) {
-
-  ha_context_t *ctx =(ha_context_t*)ha_ctx;  
-  OCIServer *srvhp;
-  dTHXa(ctx->ct_perl);
-  dSP;
+  dTHX;
   imp_dbh_t  *imp_dbh = (imp_dbh_t*)ctx->imp_dbh;
   sword status;
   text *event_att;
@@ -1316,100 +1312,155 @@
   ub4 event_code;
   HV* ha_event;
 
-  PERL_SET_CONTEXT(ctx->ct_perl);
-  ha_event  = newHV();
-  PUSHMARK(SP);
- // XPUSHs(sv_2mortal(newHV(ha_event)));
+  PerlIO_printf(DBILOGFP, " event info  \n");
+       OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_code, 0, OCI_ATTR_HA_SOURCE, imp_dbh->errhp, status);
+
+ PerlIO_printf(DBILOGFP, " hacb 1 OCI_ATTR_HA_SOURCE=%d \n",event_code);
 
-  PerlIO_printf(DBILOGFP, " how about this my functio %s\n",ctx->function);
-  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_code, 0, OCI_ATTR_HA_SOURCE, imp_dbh->errhp, status);
 
   hv_store(ha_event,"Source",6,sv_2mortal(newSVpv(oci_ha_event_source(event_code),strlen(oci_ha_event_source(event_code)))),0);
 
   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_code, 0, OCI_ATTR_HA_STATUS, imp_dbh->errhp, status);
 
- PerlIO_printf(DBILOGFP, " how about OCI_ATTR_HA_STATUS=%d HA next dwon=%d,up-%d  \n",event_code,OCI_HA_STATUS_DOWN,OCI_HA_STATUS_UP);
+ PerlIO_printf(DBILOGFP, " hacb 2 OCI_ATTR_HA_STATUS=%d HA down=%d,up=%d  \n",event_code,OCI_HA_STATUS_DOWN,OCI_HA_STATUS_UP);
 
 
   if (event_code == OCI_HA_STATUS_UP){
-  	hv_store(ha_event,"Status",6,sv_2mortal(newSVpv("UP",2)),0);
+        hv_store(ha_event,"Status",6,sv_2mortal(newSVpv("UP",2)),0);
 
   }
   else {
-	hv_store(ha_event,"Status",6,sv_2mortal(newSVpv("DOWN",4)),0);    
+        hv_store(ha_event,"Status",6,sv_2mortal(newSVpv("DOWN",4)),0);
   }
 
-  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_att, &event_att_len, OCI_ATTR_DBDOMAIN, imp_dbh->errhp, status);
+OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_att, &event_att_len, OCI_ATTR_DBDOMAIN, imp_dbh->errhp, status);
+
+ PerlIO_printf(DBILOGFP, " hacb 3 OCI_ATTR_DBDOMAIN=%s \n",event_att);
 
    hv_store(ha_event,"Domain",6,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_att, &event_att_len, OCI_ATTR_DBNAME, imp_dbh->errhp, status);
 
+ PerlIO_printf(DBILOGFP, " hacb 4 OCI_ATTR_DBNAME=%s \n",event_att);
+
+
   hv_store(ha_event,"Name",5,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
 
   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_att, &event_att_len, OCI_ATTR_HOSTNAME, imp_dbh->errhp, status);
 
+ PerlIO_printf(DBILOGFP, " hacb 5 OCI_ATTR_HOSTNAME=%s \n",event_att);
+
+
   hv_store(ha_event,"Host",4,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_att, &event_att_len, OCI_ATTR_INSTNAME, imp_dbh->errhp, status);
 
+ PerlIO_printf(DBILOGFP, " hacb 6 OCI_ATTR_INSTNAME=%s \n",event_att);
+
+
   hv_store(ha_event,"Instance",8,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
- 
+
   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_att, &event_att_len, OCI_ATTR_SERVICENAME, imp_dbh->errhp, status);
 
+ PerlIO_printf(DBILOGFP, " hacb 7 OCI_ATTR_SERVICENAME=%s \n",event_att);
+
+
   hv_store(ha_event,"Service",7,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
 
-   
-  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_ts,0, OCI_ATTR_HA_TIMESTAMP, imp_dbh->errhp, status);
 
-//  OCIDateTimeToText_log_stat(imp_dbh->envhp,imp_dbh->errhp,event_ts,&event_att_len,tsbuff,status);
+  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_ts,0, OCI_ATTR_HA_TIMESTAMP, imp_dbh->errhp, status);
 
-  OCIDateTimeToText(imp_dbh->envhp,imp_dbh->errhp, event_ts, (char*) "MM-DD-YY HH24:MI:SS.FF3", 
-		    strlen("MM-DD-YY HH24:MI:SS.FF3"), 
-		    (ub1)4, (OraText *)0, 0,&event_att_len, tsbuff);
+OCIDateTimeToText(imp_dbh->envhp,imp_dbh->errhp, event_ts, (char*) "MM-DD-YY HH24:MI:SS.FF3",
+                    strlen("MM-DD-YY HH24:MI:SS.FF3"),
+                    (ub1)4, (OraText *)0, 0,&event_att_len, tsbuff);
 
   hv_store(ha_event,"Timestamp",9,sv_2mortal(newSVpv((char*)tsbuff,event_att_len)),0);
 
+ PerlIO_printf(DBILOGFP, " hacb 8 OCI_HA_TIMESTAMP=%s \n",tsbuff);
+ OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&srvhp,0, OCI_ATTR_HA_SRVFIRST, imp_dbh->errhp, status);
 
-dbd_verbose=0;
 
+  PerlIO_printf(DBILOGFP, " hacb 9 OCI_ATTR_HA_SRVFIRST =%d nodata=%d \n",status,OCI_NO_DATA);
 
-  
-  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&srvhp,0, OCI_ATTR_HA_SRVFIRST, imp_dbh->errhp, status);
+  OCIAttrGet_log_stat(srvhp,  OCI_HTYPE_SERVER, (dvoid *)&event_att,&event_att_len, OCI_ATTR_INSTNAME, imp_dbh->errhp, status);
 
 
-  PerlIO_printf(DBILOGFP, " how about event_att=%d nodata=%d \n",status,OCI_NO_DATA);
+  PerlIO_printf(DBILOGFP, " hacb 9 server instance from new srvph name=%s \n",event_att);
 
-  OCIAttrGet_log_stat(srvhp,  OCI_HTYPE_SERVER, (dvoid *)&event_att,&event_att_len, OCI_ATTR_INSTNAME, imp_dbh->errhp, status);
 
 
-  PerlIO_printf(DBILOGFP, " how about srvhp=%s \n",event_att);
+/* OCIAttrGet_log_stat(srvhp,  OCI_HTYPE_SERVER, (dvoid *)&event_code,0, OCI_ATTR_SERVER_STATUS, imp_dbh->errhp, status);
 
 
-  OCIAttrGet_log_stat(srvhp,  OCI_HTYPE_SERVER, (dvoid *)&event_code,0, OCI_ATTR_SERVER_STATUS, imp_dbh->errhp, status);
+  PerlIO_printf(DBILOGFP, " hacb 4 HA server STAUTSp=%d ,%d, %d\n",event_code,OCI_SERVER_NORMAL ,OCI_SERVER_NOT_CONNECTED );
 
+  OCIAttrGet_log_stat(imp_dbh->srvhp,  OCI_HTYPE_SERVER, (dvoid *)&event_code,0, OCI_ATTR_SERVER_STATUS, imp_dbh->errhp, status);
 
-  PerlIO_printf(DBILOGFP, " how about the HA server STAUTSp=%d ,%d, %d\n",event_code,OCI_SERVER_NORMAL ,OCI_SERVER_NOT_CONNECTED );
 
-  OCIAttrGet_log_stat(imp_dbh->srvhp,  OCI_HTYPE_SERVER, (dvoid *)&event_code,0, OCI_ATTR_SERVER_STATUS, imp_dbh->errhp, status);
+  PerlIO_printf(DBILOGFP, " hacb 5  currecnt connection server STAUTSp=%d ,%d, %d\n",event_code,OCI_SERVER_NORMAL ,OCI_SERVER_NOT_CONNECTED );
+
+*/
+
 
 
-  PerlIO_printf(DBILOGFP, " how about the currecnt connec tion server STAUTSp=%d ,%d, %d\n",event_code,OCI_SERVER_NORMAL ,OCI_SERVER_NOT_CONNECTED );
 
+  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&srvhp,0, OCI_ATTR_HA_SRVNEXT, imp_dbh->errhp, status);
 
+ PerlIO_printf(DBILOGFP, " hacb 10 event_att=%s HA next  \n",oci_status_name(status));
 
 
  
 
-  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&srvhp,0, OCI_ATTR_HA_SRVNEXT, imp_dbh->errhp, status);
+}
+
+void
+hacb_fn( dvoid *ha_ctx, OCIEvent *eventhp) {
+
+  ha_context_t *ctx =(ha_context_t*)ha_ctx;  
+  OCIServer *srvhp;
+  dTHXa(ctx->ct_perl);
+  dSP;
+  imp_dbh_t  *imp_dbh = (imp_dbh_t*)ctx->imp_dbh;
+  sword status;
+  text *event_att;
+  OCIDateTime *event_ts;
+  OraText tsbuff[50];
+  ub4 event_att_len;
+  ub4 event_code;
+  HV* ha_event;
 
+  PERL_SET_CONTEXT(ctx->ct_perl);
+  ha_event  = newHV();
+  PUSHMARK(SP);
+ // XPUSHs(sv_2mortal(newHV(ha_event)));
+  event_info(imp_dbh,eventhp);
 
 
-  PerlIO_printf(DBILOGFP, " how about event_att=%d HA next  \n",status);
+ 
+/*
+  status = 
+  while(!status){
 
+     OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&srvhp,0, OCI_ATTR_HA_SRVNEXT, imp_dbh->errhp, status);
+     if (status == OCI_NO_DATA) {
+          break;
+     }
+     else {
+      PerlIO_printf(DBILOGFP, " hacb 7 found another server handle.\n");
+      get associated instance name, 
+      OCIAttrGet_log_stat(srvhp,  OCI_HTYPE_SERVER, (dvoid *)&event_att,&event_att_len, OCI_ATTR_INSTNAME, imp_dbh->errhp, status);
+
+      if (status == OCI_NO_DATA){
+          break;
+      }
+      else {
+        printf("instance name is %s.\n", instname);
+      }
+    }
+  }
 
   XPUSHs(sv_2mortal(newRV((SV*)ha_event)));
   PUTBACK;
@@ -1466,7 +1517,7 @@
 	
 }
 
-static char *myctx = (char *) "somthing borrowed";
+
 sb4
 reg_ha_callback( imp_dbh_t *imp_dbh)
 {