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;
-
[svn:dbd-oracle] r14977 - dbd-oracle/branches/FAN
by byterock