develooper Front page | perl.dbd.oracle.changes | Postings from October 2011

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

From:
byterock
Date:
October 28, 2011 17:25
Subject:
[svn:dbd-oracle] r14977 - dbd-oracle/branches/FAN
Message ID:
20111029002533.6E554184B30@xx12.develooper.com
Author: byterock
Date: Fri Oct 28 17:25:33 2011
New Revision: 14977

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

Log:
back again


Modified: dbd-oracle/branches/FAN/oci8.c
==============================================================================
--- dbd-oracle/branches/FAN/oci8.c	(original)
+++ dbd-oracle/branches/FAN/oci8.c	Fri Oct 28 17:25:33 2011
@@ -58,7 +58,7 @@
 	dTHX;
         SV *sv;
         switch (source) {
-		case OCI_HA_SOURCE_INSTANCE:            return "INSATNCE"; 
+		case OCI_HA_SOURCE_INSTANCE:            return "INSATNCE";
 		case OCI_HA_SOURCE_DATABASE:            return "DATABASE";
 		case OCI_HA_SOURCE_NODE:                return "NODE";
 		case OCI_HA_SOURCE_SERVICE:             return "SERVICE";
@@ -1299,15 +1299,20 @@
 
 }
 
-void 
-event_info ( HV *ha_event, imp_dbh_t *imp_dbh, OCIEvent *eventhp) {
+void
+hacb_fn( dvoid *ha_ctx, OCIEvent *eventhp) {
 
-  dTHX;
-  sword status;
+  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;
+  HV* ha_event;
+  AV* servers;
   OCIDateTime *event_ts;
   OCIServer *srvhp;
-  OraText tsbuff[50];
-  ub4  source_len;
+  ub4 str_len = 200;
+  text  str_buf[200];
   text source_att;
   ub4  status_att;
   ub4  dbdomain_len;
@@ -1320,105 +1325,82 @@
   text instance_att;
   ub4  service_len;
   text service_att;
-  ub4  timestamp_len;
-  text timestamp_att;
+  ub4  event_att_len; 
+  text event_att;
+
+  PERL_SET_CONTEXT(ctx->ct_perl);
+  ha_event = newHV();
+  servers  = newAV();
 
-  PerlIO_printf(DBILOGFP, " event info  \n");
-       OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&source, 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, " event info  \n");
+       OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&source_att, 0, OCI_ATTR_HA_SOURCE, imp_dbh->errhp, status);
 
+ PerlIO_printf(DBILOGFP, " hacb 1 OCI_ATTR_HA_SOURCE=%d \n",source_att);
 
-  hv_store(ha_event,"Source",6,sv_2mortal(newSVpv(oci_ha_event_source(event_code),strlen(oci_ha_event_source(event_code)))),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_code, 0, OCI_ATTR_HA_STATUS, imp_dbh->errhp, status);
+  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&status_att, 0, OCI_ATTR_HA_STATUS, imp_dbh->errhp, status);
 
- 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);
+ 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);
 
 
-  if (event_code == OCI_HA_STATUS_UP){
+  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 *)&event_att, &event_att_len, OCI_ATTR_DBDOMAIN, imp_dbh->errhp, status);
+ OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&dbdomain_att, &dbdomain_len, OCI_ATTR_DBDOMAIN, imp_dbh->errhp, status);
 
- PerlIO_printf(DBILOGFP, " hacb 3 OCI_ATTR_DBDOMAIN=%s \n",event_att);
+ PerlIO_printf(DBILOGFP, " hacb 3 OCI_ATTR_DBDOMAIN=%s \n",dbdomain_att);
 
-  // hv_store(ha_event,"Domain",6,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_DBNAME, imp_dbh->errhp, status);
+  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&dbname_att, &dbname_len, OCI_ATTR_DBNAME, imp_dbh->errhp, status);
 
- PerlIO_printf(DBILOGFP, " hacb 4 OCI_ATTR_DBNAME=%s \n",event_att);
+ 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);
 
- // hv_store(ha_event,"Name",5,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);
 
-  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",hostname_att);
 
- PerlIO_printf(DBILOGFP, " hacb 5 OCI_ATTR_HOSTNAME=%s \n",event_att);
 
+  hv_store(ha_event,"Host",4,sv_2mortal(newSVpv((char*)hostname_att,hostname_len)),0);
 
- // hv_store(ha_event,"Host",4,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
+  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&instance_att, &instance_len, OCI_ATTR_INSTNAME, imp_dbh->errhp, status);
 
-  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",instance_att);
 
- PerlIO_printf(DBILOGFP, " hacb 6 OCI_ATTR_INSTNAME=%s \n",event_att);
 
+  hv_store(ha_event,"Instance",8,sv_2mortal(newSVpv((char*)instance_att,instance_len)),0);
 
-  //hv_store(ha_event,"Instance",8,sv_2mortal(newSVpv((char*)event_att,event_att_len)),0);
 
+  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&service_att, &service_len, OCI_ATTR_SERVICENAME, imp_dbh->errhp, status);
 
-  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",service_att);
 
- 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);
+ hv_store(ha_event,"Service",7,sv_2mortal(newSVpv((char*)service_att,service_len)),0);
 
 
 
   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.SS",
-                    strlen("MM-DD-YY HH24:MI:SS.SS"),
-                    (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);
+  OCIDateTimeToText_log_stat(imp_dbh->envhp,imp_dbh->errhp,event_ts,&str_len,str_buf,status);
 
 
- 
+hv_store(ha_event,"Timestamp",9,sv_2mortal(newSVpv((char*)str_buf,str_len)),0);
 
-}
+ PerlIO_printf(DBILOGFP, " hacb 8 OCI_HA_TIMESTAMP=%s \n",str_buf);
 
-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 = OCI_SUCCESS;
-  text *event_att;
-  OCIDateTime *event_ts;
-  OraText tsbuff[50];
-  ub4 event_att_len;
-  ub4 event_code;
-  HV* ha_event;
-  AV* servers;
-
-  PERL_SET_CONTEXT(ctx->ct_perl);
-  ha_event = newHV();
-  servers  = newAV();
 
-  event_info(ha_event,imp_dbh,eventhp);
 
 
   OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&srvhp,0, OCI_ATTR_HA_SRVFIRST, imp_dbh->errhp, status);
@@ -1441,14 +1423,14 @@
      }
      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,servers,0);
+  hv_store(ha_event,"Instances",9,newRV_noinc((SV*)servers),0);
   PUSHMARK(SP);
   XPUSHs(sv_2mortal(newRV((SV*)ha_event)));
   PUTBACK;
@@ -1680,7 +1662,7 @@
 {
 	dTHX;
 	OCIStmt *stmhp_nested = ((OCIStmt **)fbh->fb_ary->abuf)[0];
-	
+
 	D_imp_sth(sth);
 	D_imp_dbh_from_sth;
 	dSP;



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About