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

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

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

Log:
a quick fix

Modified: dbd-oracle/branches/FAN/oci8.c
==============================================================================
--- dbd-oracle/branches/FAN/oci8.c	(original)
+++ dbd-oracle/branches/FAN/oci8.c	Fri Oct 28 17:48:22 2011
@@ -1302,144 +1302,116 @@
 void
 hacb_fn( dvoid *ha_ctx, OCIEvent *eventhp) {
 
-  ha_context_t *ctx =(ha_context_t*)ha_ctx;
-  dTHXa(ctx->ct_perl);
-  dSP;
-  imp_dbh_t  *imp_dbh = (imp_dbh_t*)ctx->imp_dbh;
-  sword status = OCI_SUCCESS;
+ 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;
 
-  OCIDateTime *event_ts;
-  OCIServer *srvhp;
-  ub4 str_len = 200;
-  text  str_buf[200];
-  text source_att;
-  ub4  status_att;
-  ub4  dbdomain_len;
-  text dbdomain_att;
-  ub4  dbname_len;
-  text dbname_att;
-  ub4  hostname_len;
-  text hostname_att;
-  ub4  instance_len;
-  text instance_att;
-  ub4  service_len;
-  text service_att;
-  ub4  event_att_len;
-  text event_att;
-  HV* ha_event;
-  AV* servers;
+   PERL_SET_CONTEXT(ctx->ct_perl);
+   ha_event  = newHV();
+   PUSHMARK(SP);
 
-  PERL_SET_CONTEXT(ctx->ct_perl);
-  ha_event = newHV();
-  servers  = newAV();
+   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);
 
-  PUSHMARK(SP);
+  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, " event info  \n");
 
- OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&source_att, 0, OCI_ATTR_HA_SOURCE, imp_dbh->errhp, status);
+   if (event_code == OCI_HA_STATUS_UP){
+   	hv_store(ha_event,"Status",6,sv_2mortal(newSVpv("UP",2)),0);
 
- PerlIO_printf(DBILOGFP, " hacb 1 OCI_ATTR_HA_SOURCE=%d \n",source_att);
+   }
+   else {
+ 	hv_store(ha_event,"Status",6,sv_2mortal(newSVpv("DOWN",4)),0);
+   }
 
-  hv_store(ha_event,"Source",6,sv_2mortal(newSVpv(oci_ha_event_source(source_att),strlen(oci_ha_event_source(source_att)))),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 *)&status_att, 0, OCI_ATTR_HA_STATUS, imp_dbh->errhp, status);
+    hv_store(ha_event,"Domain",6,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
- PerlIO_printf(DBILOGFP, " hacb 2 OCI_ATTR_HA_STATUS=%d HA down=%d,up=%d  \n",status_att,OCI_HA_STATUS_DOWN,OCI_HA_STATUS_UP);
+   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_att, &event_att_len, OCI_ATTR_DBNAME, imp_dbh->errhp, status);
 
+   hv_store(ha_event,"Name",5,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
-  if (status_att == OCI_HA_STATUS_UP){
-        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);
-  }
 
- OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&dbdomain_att, &dbdomain_len, OCI_ATTR_DBDOMAIN, imp_dbh->errhp, status);
+   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_att, &event_att_len, OCI_ATTR_HOSTNAME, imp_dbh->errhp, status);
 
- PerlIO_printf(DBILOGFP, " hacb 3 OCI_ATTR_DBDOMAIN=%s \n",dbdomain_att);
+   hv_store(ha_event,"Host",4,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
-   hv_store(ha_event,"Domain",6,sv_2mortal(newSVpv((char*)dbdomain_att,dbdomain_len)),0);
+   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_att, &event_att_len, OCI_ATTR_INSTNAME, imp_dbh->errhp, status);
 
-  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&dbname_att, &dbname_len, OCI_ATTR_DBNAME, imp_dbh->errhp, status);
+   hv_store(ha_event,"Instance",8,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
- PerlIO_printf(DBILOGFP, " hacb 4 OCI_ATTR_DBNAME=%s \n",dbname_att);
 
- hv_store(ha_event,"Name",5,sv_2mortal(newSVpv((char*)dbname_att,dbname_len)),0);
+   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_att, &event_att_len, OCI_ATTR_SERVICENAME, imp_dbh->errhp, status);
 
+   hv_store(ha_event,"Service",7,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
-  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&hostname_att, &hostname_len, OCI_ATTR_HOSTNAME, imp_dbh->errhp, status);
 
- PerlIO_printf(DBILOGFP, " hacb 5 OCI_ATTR_HOSTNAME=%s \n",hostname_att);
 
+   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&event_ts,0, OCI_ATTR_HA_TIMESTAMP, imp_dbh->errhp, status);
 
-  hv_store(ha_event,"Host",4,sv_2mortal(newSVpv((char*)hostname_att,hostname_len)),0);
+ //  OCIDateTimeToText_log_stat(imp_dbh->envhp,imp_dbh->errhp,event_ts,&event_att_len,tsbuff,status);
 
-  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&instance_att, &instance_len, OCI_ATTR_INSTNAME, 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);
 
- PerlIO_printf(DBILOGFP, " hacb 6 OCI_ATTR_INSTNAME=%s \n",instance_att);
+   hv_store(ha_event,"Timestamp",9,sv_2mortal(newSVpv((char*)tsbuff,event_att_len)),0);
 
 
-  hv_store(ha_event,"Instance",8,sv_2mortal(newSVpv((char*)instance_att,instance_len)),0);
+ dbd_verbose=0;
 
 
-  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&service_att, &service_len, OCI_ATTR_SERVICENAME, imp_dbh->errhp, status);
 
- PerlIO_printf(DBILOGFP, " hacb 7 OCI_ATTR_SERVICENAME=%s \n",service_att);
+   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&srvhp,0, OCI_ATTR_HA_SRVFIRST, imp_dbh->errhp, status);
 
 
+   PerlIO_printf(DBILOGFP, " how about event_att=%d nodata=%d \n",status,OCI_NO_DATA);
 
- hv_store(ha_event,"Service",7,sv_2mortal(newSVpv((char*)service_att,service_len)),0);
+   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(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,&str_len,str_buf,status);
+   OCIAttrGet_log_stat(srvhp,  OCI_HTYPE_SERVER, (dvoid *)&event_code,0, OCI_ATTR_SERVER_STATUS, imp_dbh->errhp, status);
 
 
-hv_store(ha_event,"Timestamp",9,sv_2mortal(newSVpv((char*)str_buf,str_len)),0);
+   PerlIO_printf(DBILOGFP, " how about the HA server STAUTSp=%d ,%d, %d\n",event_code,OCI_SERVER_NORMAL ,OCI_SERVER_NOT_CONNECTED );
 
- PerlIO_printf(DBILOGFP, " hacb 8 OCI_HA_TIMESTAMP=%s \n",str_buf);
+   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 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_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);
 
 
-  av_push(servers, newSVpv( (char *) event_att,0));
+   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&srvhp,0, OCI_ATTR_HA_SRVNEXT, imp_dbh->errhp, status);
 
 
-  PerlIO_printf(DBILOGFP, " hacb 9 server instance from new srvph name=%s \n",event_att);
 
+   PerlIO_printf(DBILOGFP, " how about event_att=%d HA next  \n",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 10 found another server handle.\n");
-
-      OCIAttrGet_log_stat(srvhp,  OCI_HTYPE_SERVER, (dvoid *)&event_att,&event_att_len, OCI_ATTR_INSTNAME, imp_dbh->errhp, status);
-      av_push(servers, newSVpv( (char *) event_att,0));
-
-    }
-  }
-
-  hv_store(ha_event,"Instances",9,newRV_noinc((SV*)servers),0);
-  XPUSHs(sv_2mortal(newRV((SV*)ha_event)));
-  PUTBACK;
+   XPUSHs(sv_2mortal(newRV((SV*)ha_event)));
+   PUTBACK;
   call_pv(ctx->function, G_DISCARD);
-
 }