//venu changed dialogueId and stmtId from int to long for 64 bit JNIEXPORT void JNICALL Java_org_trafodion_jdbc_t2_SQLMXResultSet_getResultSetInfo (JNIEnv *jenv, jobject jobj, jlong dialogueId, jlong stmtId, jobject RSInfo) { FUNCTION_ENTRY_LEVEL(DEBUG_LEVEL_STMT,"Java_org_trafodion_jdbc_t2_SQLMXResultSet_getResultSetInfo", ("dialogueId=0x%08x, stmtId=0x%08x, RSInfo=0x%08x", dialogueId, stmtId, RSInfo)); SQLCTX_HANDLE ctxHandle; SRVR_STMT_HDL *pSrvrStmt; long sqlcode; // Get the Statement ID if ((pSrvrStmt = getSrvrStmt(dialogueId, stmtId, &sqlcode)) == NULL) { /* * Start Solution No. 10-100412-9447 */ // Set the Field ID //Start Solution No.: 10-091103-5969 DEBUG_OUT(DEBUG_LEVEL_STMT,("getResultSetInfo() &pSrvrStmt->stmt: 0x%08x", 0)); //End Solution No.: 10-091103-5969 JNI_SetIntField(jenv, RSInfo, gJNICache.SPJRS_stmtIDFieldID, (jint)(0)); // Set the CTXHandle, this is same as the dialogId. DEBUG_OUT(DEBUG_LEVEL_STMT,("getResultSetInfo() ctxHandle: 0x%08x", dialogueId)); JNI_SetIntField(jenv, RSInfo, gJNICache.SPJRS_ctxHandleFieldID, (jint)(dialogueId)); // Set the CLI statement closure status to the java variable DEBUG_OUT(DEBUG_LEVEL_STMT,("getResultSetInfo() pSrvrStmt->isClosed: 0x%08x", JNI_TRUE)); //10-060831-8723 JNI_SetBooleanField(jenv, RSInfo, gJNICache.SPJRS_stmtClosedFieldID, (jint)(JNI_TRUE)); //10-060831-8723 /* * End Solution No. 10-100412-9447 */ // Variable initialized to zero in calling routine, so // if getting pSrvrStmt fails, just return w/o setting DEBUG_OUT(DEBUG_LEVEL_STMT,("getResultSetInfo() getSrvrStmt() failed")); FUNCTION_RETURN_VOID((NULL)); } // Set the Field ID DEBUG_OUT(DEBUG_LEVEL_STMT,("getResultSetInfo() &pSrvrStmt->stmt: 0x%08x", &(pSrvrStmt->stmt))); JNI_SetIntField(jenv, RSInfo, gJNICache.SPJRS_stmtIDFieldID, (jlong)&(pSrvrStmt->stmt)); // Get the Current Context Handle ctxHandle = pSrvrStmt->getContext(); if (ctxHandle == 0) // getContext() failed { // if ctxHandle = 0, call failed to obtain current context, rtn w/o setting DEBUG_OUT(DEBUG_LEVEL_STMT,("getResultSetInfo() ctxHandle failed ctxHandle: 0x%08x", ctxHandle)); FUNCTION_RETURN_VOID((NULL)); } DEBUG_OUT(DEBUG_LEVEL_STMT,("getResultSetInfo() ctxHandle: 0x%08x", ctxHandle)); JNI_SetIntField(jenv, RSInfo, gJNICache.SPJRS_ctxHandleFieldID, (jint)(ctxHandle)); // Set the CLI statement closure status to the java variable DEBUG_OUT(DEBUG_LEVEL_STMT,("getResultSetInfo() pSrvrStmt->isClosed: 0x%08x", pSrvrStmt->isClosed)); //10-060831-8723 JNI_SetBooleanField(jenv, RSInfo, gJNICache.SPJRS_stmtClosedFieldID, (jint)(pSrvrStmt->isClosed)); //10-060831-8723 FUNCTION_RETURN_VOID((NULL)); }
bool SysUtil::StatEventValue(const char* szEventID, const char* szEventLabel, TCAgentHelper& refAgentHelper, long lVal) { CCLog("TCAgentEvent:%s,%s,%d", szEventID, szEventLabel, lVal); JniMethodInfo t; if(JniHelper::getStaticMethodInfo(t, CLASS_NAME, "rtnObject", "()Ljava/lang/Object;")) { jobject jobj; jobj = t.env->CallStaticObjectMethod(t.classID, t.methodID); if(JniHelper::getMethodInfo(t, CLASS_NAME, "TCAgentEvent", "(Ljava/lang/String;Ljava/lang/String;[Lcom/ourgame/common/JniTCAgentVal;J)V")) { jclass objClass = t.env->FindClass("com/ourgame/common/JniTCAgentVal"); jmethodID jmcons = t.env->GetMethodID(objClass, "<init>", "()V"); std::vector<TCAgentHelper::TCAgentVal>& vtVal = refAgentHelper.m_vtVal; int nNum = vtVal.size(); CCLog("Num:%d", nNum); jobjectArray jayVal; jayVal = t.env->NewObjectArray(nNum, objClass, 0); int i = 0; vector<TCAgentHelper::TCAgentVal>::iterator it; for(it = vtVal.begin(); it != vtVal.end(); it++, i++) { TCAgentHelper::TCAgentVal& v = *it; jobject jobjVal = t.env->NewObject(objClass, jmcons); JNI_SetStringField(t.env, objClass, jobjVal, "strKey", v.szKey); JNI_SetIntField(t.env, objClass, jobjVal, "nType", (jint)v.nType); switch(v.nType) { case TCAgentHelper::TCAVT_STRING: JNI_SetStringField(t.env, objClass, jobjVal, "strVal", v.szVal); break; case TCAgentHelper::TCAVT_INT: JNI_SetIntField(t.env, objClass, jobjVal, "nVal", (jint)v.nVal); break; case TCAgentHelper::TCAVT_FLOAT: JNI_SetFloatField(t.env, objClass, jobjVal, "fVal", (jfloat)v.fVal); break; } t.env->SetObjectArrayElement(jayVal, i, jobjVal); } jstring jstrEventID = t.env->NewStringUTF(szEventID); jstring jstrEventLabel = t.env->NewStringUTF(szEventLabel); t.env->CallVoidMethod(jobj, t.methodID, jstrEventID, jstrEventLabel, jayVal, (jlong)lVal); t.env->DeleteLocalRef(jstrEventID); t.env->DeleteLocalRef(jstrEventLabel); t.env->DeleteLocalRef(jayVal); return true; } } return false; }