[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)
{