Front page | perl.dbd.oracle.changes |
Postings from October 2011
[svn:dbd-oracle] r14972 - dbd-oracle/branches/FAN
From:
byterock
Date:
October 28, 2011 16:37
Subject:
[svn:dbd-oracle] r14972 - dbd-oracle/branches/FAN
Message ID:
20111028233742.F39BD184B30@xx12.develooper.com
Author: byterock
Date: Fri Oct 28 16:37:42 2011
New Revision: 14972
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 16:37:42 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,7 +1299,7 @@
}
-void
+void
event_info (ha_context_t *ha_ctx, HV *ha_event, imp_dbh_t *imp_dbh, OCIEvent *eventhp) {
ha_context_t *ctx =(ha_context_t*)ha_ctx;
@@ -1391,32 +1391,111 @@
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;
+ 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;
+ 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;
PERL_SET_CONTEXT(ctx->ct_perl);
ha_event = newHV();
servers = newAV();
- event_info(ha_ctx,ha_event,imp_dbh,eventhp);
+
+ 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(source_att),strlen(oci_ha_event_source(source_att)))),0);
+
+ 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",status_att,OCI_HA_STATUS_DOWN,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 *)&dbdomain_att, &dbdomain_len, OCI_ATTR_DBDOMAIN, imp_dbh->errhp, status);
+
+ PerlIO_printf(DBILOGFP, " hacb 3 OCI_ATTR_DBDOMAIN=%s \n",dbdomain_att);
+
+ hv_store(ha_event,"Domain",6,sv_2mortal(newSVpv((char*)dbdomain_att,dbdomain_len)),0);
+
+ 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",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 *)&hostname_att, &hostname_len, OCI_ATTR_HOSTNAME, imp_dbh->errhp, status);
+
+ PerlIO_printf(DBILOGFP, " hacb 5 OCI_ATTR_HOSTNAME=%s \n",hostname_att);
+
+
+ hv_store(ha_event,"Host",4,sv_2mortal(newSVpv((char*)hostname_att,hostname_len)),0);
+
+ OCIAttrGet_log_stat(eventhp, OCI_HTYPE_EVENT, (dvoid *)&instance_att, &instance_len, OCI_ATTR_INSTNAME, imp_dbh->errhp, status);
+
+ PerlIO_printf(DBILOGFP, " hacb 6 OCI_ATTR_INSTNAME=%s \n",instance_att);
+
+
+ hv_store(ha_event,"Instance",8,sv_2mortal(newSVpv((char*)instance_att,instance_len)),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);
+
+
+
+ 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_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);
+
+
+
OCIAttrGet_log_stat(eventhp, OCI_HTYPE_EVENT, (dvoid *)&srvhp,0, OCI_ATTR_HA_SRVFIRST, imp_dbh->errhp, status);
@@ -1439,7 +1518,7 @@
}
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));
@@ -1678,7 +1757,7 @@
{
dTHX;
OCIStmt *stmhp_nested = ((OCIStmt **)fbh->fb_ary->abuf)[0];
-
+
D_imp_sth(sth);
D_imp_dbh_from_sth;
dSP;
-
[svn:dbd-oracle] r14972 - dbd-oracle/branches/FAN
by byterock