Deadlock while executing catalog.sql
I've installed a local DB on my computer, running Oracle 9i. Wanted to import a dump and the manual says first execute the catalog.sql Script. When I do this as sys I get following errors:
Execution x:
ORA-04045: errors during recompilation/revalidation of SYS.CDC_CREATE_CTABLE_AFTER
ORA-00060: deadlock detected while waiting for resource
Execution x+1:
ORA-04020: deadlock detected while trying to lock object SYS.STANDARD
Execution x+2:
ORA-04045: errors during recompilation/revalidation of SYS.CDC_CREATE_CTABLE_AFTER
ORA-00060: deadlock detected while waiting for resource
Execution x+3:
ORA-04020: deadlock detected while trying to lock object SYS.STANDARD
Execution x+4:
ORA-04045: errors during recompilation/revalidation of SYS.CDC_CREATE_CTABLE_AFTER
ORA-00060: deadlock detected while waiting for resource
There seems to be a certain scheme, always alternating error messages. Could anyone help me please?
Thanks!
Hmmm, first I ran the Script in the SQL Navigator 5.0 and got the mentioned errors, now I ran it in the SQL *Plus worksheet and got following (different errors):
SQL*Plus: Release 9.2.0.1.0 - Production on Di Jan 31 17:43:08 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connect durchgeführt.
SP2-0310: Datei "standard.sql" konnte nicht geöffnet werdenSP2-0310: Datei "dbmsstdx.sql" konnte nicht geöffnet werden
SP2-0310: Datei "catcr.sql" konnte nicht geöffnet werden
PL/SQL-Prozedur wurde erfolgreich abgeschlossen.
... (text text text) ...
Kommentar wurde angelegt.
SP2-0310: Datei "catcdc.sql" konnte nicht geöffnet werden
SP2-0310: Datei "cataudit.sql" konnte nicht geöffnet werden
View wurde angelegt.
SP2-0310: Datei "utlraw.sql" konnte nicht geöffnet werden
SP2-0310: Datei "catexp.sql" konnte nicht geöffnet werden
SP2-0310: Datei "catldr.sql" konnte nicht geöffnet werden
SP2-0310: Datei "catpart.sql" konnte nicht geöffnet werden
SP2-0310: Datei "catadt.sql" konnte nicht geöffnet werden
SP2-0310: Datei "catsum.sql" konnte nicht geöffnet werden
SP2-0310: Datei "catlsby.sql" konnte nicht geöffnet werden
SP2-0310: Datei "catxtb.sql" konnte nicht geöffnet werden
CREATE ROLE RECOVERY_CATALOG_OWNER
FEHLER in Zeile 1:
ORA-01921: Rolle 'RECOVERY_CATALOG_OWNER' kollidiert mit anderem Benutzer- oder Rollennamen
... ( text text text) ...
Transaktion mit COMMIT abgeschlossen.
PL/SQL-Prozedur wurde erfolgreich abgeschlossen.
Sorry for the German error messages :-/. Can I change the language?
What's wrong?
Similar Messages
-
ORA-06550 error while executing Dynamic Sql
EXECUTE IMMEDIATE 'BEGIN :out := ' || lv_formula || '; END;' using out RESULT ;
here lv_formula:= ((capcost * rate / 100) + (ob + (ob * interestrate / 100)))
lv_formula is varchar2(360);
and capcost,rate,ob & interestrate are my column names . Here I m declaring variables same as these columns and datatype is number.
I am not getting any compilation error. syntax is correct
while executing this sql i m getting ora-06550.
can any one help me for resolving this error.
Thanks In Advance
hoping for more resposeThanks Billy for your response,
but i still didn't get my desired solution so i am pasting my whole plsql code here. so that u can get better picture.
/* Formatted on 2010/11/22 15:23 (Formatter Plus v4.8.5) */
PROCEDURE xb (
l_refno IN VARCHAR2,
l_billtyp IN VARCHAR2,
infor IN VARCHAR2,
aresult OUT NUMBER
IS
--A NUMBER:=10; B NUMBER :=5;
lv_formula VARCHAR2 (270); --:=(A+B)*2+5;
l_agtmnt VARCHAR2 (18);
l_type VARCHAR2 (2);
RESULT NUMBER;
refno afxbrmst.refno%TYPE;
billtyp afxbrmst.billtyp%TYPE;
ob afxbrmst.ob%TYPE;-- := 45283;
status afxbrmst.status%TYPE -- := 0;
dueamt afxbrmst.dueamt%TYPE -- := 0;
duedate afxbrmst.duedate%TYPE;
frequency afxbrmst.frequency%TYPE;
lastrevrate afxbrmst.lastrevrate%TYPE -- := 0;
penaltyamt afxbrmst.penaltyamt%TYPE -- := 0;
accounted afxbrmst.accounted%TYPE;
lastbillraised afxbrmst.lastbillraised%TYPE;
noofstaff afxbrmst.noofstaff%TYPE;
items afxbrmst.items%TYPE;
area afxbrmst.area%TYPE;
LENGTH afxbrmst.LENGTH%TYPE -- := 0;
interest afxbrmst.interest%TYPE -- := 0;
capcost NUMBER; afxbrmst.capcost%TYPE; :=1;
-- := 1509432;
periodfrom afxbrrate.periodfrom%TYPE;
periodto afxbrrate.preiodto%TYPE;
rcsrate afxbrrate.rcsrate%TYPE -- := 0;
length_area afxbrrate.length_area%TYPE;
rate afxbrrate.rate%TYPE --:= 0;
-- :=3;
erate afxbrrate.erate%TYPE -- := 0;
feamount afxbrrate.feamount%TYPE -- := 0;
interestrate afxbrrate.interestrate%TYPE -- := 0;
-- :=12;
fiamount afxbrrate.fiamount%TYPE --:= 0;
penaltyrate afxbrrate.penaltyrate%TYPE -- := 0;
l_ob afxbrmst_test.ob%TYPE -- := 0;
l_capcost afxbrmst.capcost%TYPE -- := 0;
raise_application_trigger EXCEPTION;
inti INTEGER;
BEGIN
--break;
lv_formula :=
TO_NUMBER ((capcost * rate / 100) + (ob + (ob * interestrate / 100)));
--infor;
l_agtmnt := l_refno;
l_type := l_billtyp;
BEGIN
SELECT a.refno, a.billtyp, a.ob, a.status, a.dueamt, a.duedate,
a.frequency, a.lastrevrate, a.penaltyamt, a.accounted,
a.lastbillraised, a.noofstaff, a.items, a.area, a.LENGTH,
a.interest, a.capcost
INTO refno, billtyp, ob, status, dueamt, duedate,
frequency, lastrevrate, penaltyamt, accounted,
lastbillraised, noofstaff, items, area, LENGTH,
interest, capcost
FROM afxbrmst_test a
WHERE billtyp = l_type AND refno = l_agtmnt;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
BEGIN
SELECT b.periodfrom, b.preiodto, b.rcsrate, b.length_area, b.rate,
b.erate, b.feamount, b.interestrate, b.fiamount, b.penaltyrate
INTO periodfrom, periodto, rcsrate, length_area, rate,
erate, feamount, interestrate, fiamount, penaltyrate
FROM afxbrrate b
WHERE billtype = l_type;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
EXECUTE IMMEDIATE 'BEGIN :out := ' || lv_formula || '; END;'
USING OUT RESULT; --USING OUT RESULT;
aresult := RESULT;
END;
-- Procedure
here i m passing the parameter through my form builder and calling this procedure.
can you tell me where i am making wrong
Thanks again -
Error while executing a sql query for select
HI All,
ORA-01652: unable to extend temp segment by 128 in tablespace PSTEMP i'm getting this error while i'm executing the sql query for selecting the data.I am having 44GB of temp space, while executing the below query my temp space is getting full, Expert please let us know how the issue can be resolved..
1. I dont want to increase the temp space
2. I need to tune the query, please provide your recomendations.
insert /*+APPEND*/ into CST_DSA.HIERARCHY_MISMATCHES
(REPORT_NUM,REPORT_TYPE,REPORT_DESC,GAP,CARRIED_ITEMS,CARRIED_ITEM_TYPE,NO_OF_ROUTE_OF_CARRIED_ITEM,CARRIED_ITEM_ROUTE_NO,CARRIER_ITEMS,CARRIER_ITEM_TYPE,CARRIED_ITEM_PROTECTION_TYPE,SOURCE_SYSTEM)
select
REPORTNUMBER,REPORTTYPE,REPORTDESCRIPTION ,NULL,
carried_items,carried_item_type,no_of_route_of_carried_item,carried_item_route_no,carrier_items,
carrier_item_type,carried_item_protection_type,'PACS'
from
(select distinct
c.REPORTNUMBER,c.REPORTTYPE,c.REPORTDESCRIPTION ,NULL,
a.carried_items,a.carried_item_type,a.no_of_route_of_carried_item,a.carried_item_route_no,a.carrier_items,
a.carrier_item_type,a.carried_item_protection_type,'PACS'
from CST_ASIR.HIERARCHY_asir a,CST_DSA.M_PB_CIRCUIT_ROUTING b ,CST_DSA.REPORT_METADATA c
where a.carrier_item_type in('Connection') and a.carried_item_type in('Service')
AND a.carrier_items=b.mux
and c.REPORTNUMBER=(case
when a.carrier_item_type in ('ServicePackage','Service','Connection') then 10
else 20
end)
and a.carrier_items not in (select carried_items from CST_ASIR.HIERARCHY_asir where carried_item_type in('Connection') ))A
where not exists
(select *
from CST_DSA.HIERARCHY_MISMATCHES B where
A.REPORTNUMBER=B.REPORT_NUM and
A.REPORTTYPE=B.REPORT_TYPE and
A.REPORTDESCRIPTION=B.REPORT_DESC and
A.CARRIED_ITEMS=B.CARRIED_ITEMS and
A.CARRIED_ITEM_TYPE=B.CARRIED_ITEM_TYPE and
A.NO_OF_ROUTE_OF_CARRIED_ITEM=B.NO_OF_ROUTE_OF_CARRIED_ITEM and
A.CARRIED_ITEM_ROUTE_NO=B.CARRIED_ITEM_ROUTE_NO and
A.CARRIER_ITEMS=B.CARRIER_ITEMS and
A.CARRIER_ITEM_TYPE=B.CARRIER_ITEM_TYPE and
A.CARRIED_ITEM_PROTECTION_TYPE=B.CARRIED_ITEM_PROTECTION_TYPE
AND B.SOURCE_SYSTEM='PACS'
Explain Plan
==========
Plan
INSERT STATEMENT ALL_ROWSCost: 129 Bytes: 1,103 Cardinality: 1
20 LOAD AS SELECT CST_DSA.HIERARCHY_MISMATCHES
19 PX COORDINATOR
18 PX SEND QC (RANDOM) PARALLEL_TO_SERIAL SYS.:TQ10002 :Q1002Cost: 129 Bytes: 1,103 Cardinality: 1
17 NESTED LOOPS PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 129 Bytes: 1,103 Cardinality: 1
15 HASH JOIN RIGHT ANTI NA PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 129 Bytes: 1,098 Cardinality: 1
4 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 63 Bytes: 359,283 Cardinality: 15,621
3 PX SEND BROADCAST PARALLEL_TO_PARALLEL SYS.:TQ10001 :Q1001Cost: 63 Bytes: 359,283 Cardinality: 15,621
2 PX BLOCK ITERATOR PARALLEL_COMBINED_WITH_CHILD :Q1001Cost: 63 Bytes: 359,283 Cardinality: 15,621
1 MAT_VIEW ACCESS FULL MAT_VIEW PARALLEL_COMBINED_WITH_PARENT CST_ASIR.HIERARCHY :Q1001Cost: 63 Bytes: 359,283 Cardinality: 15,621
14 NESTED LOOPS ANTI PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 65 Bytes: 40,256,600 Cardinality: 37,448
11 HASH JOIN PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 65 Bytes: 6,366,160 Cardinality: 37,448
8 BUFFER SORT PARALLEL_COMBINED_WITH_CHILD :Q1002
7 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 1 Bytes: 214 Cardinality: 2
6 PX SEND BROADCAST PARALLEL_FROM_SERIAL SYS.:TQ10000 Cost: 1 Bytes: 214 Cardinality: 2
5 INDEX FULL SCAN INDEX CST_DSA.IDX$$_06EF0005 Cost: 1 Bytes: 214 Cardinality: 2
10 PX BLOCK ITERATOR PARALLEL_COMBINED_WITH_CHILD :Q1002Cost: 63 Bytes: 2,359,224 Cardinality: 37,448
9 MAT_VIEW ACCESS FULL MAT_VIEW PARALLEL_COMBINED_WITH_PARENT CST_ASIR.HIERARCHY :Q1002Cost: 63 Bytes: 2,359,224 Cardinality: 37,448
13 TABLE ACCESS BY INDEX ROWID TABLE PARALLEL_COMBINED_WITH_PARENT CST_DSA.HIERARCHY_MISMATCHES :Q1002Cost: 0 Bytes: 905 Cardinality: 1
12 INDEX RANGE SCAN INDEX PARALLEL_COMBINED_WITH_PARENT SYS.HIERARCHY_MISMATCHES_IDX3 :Q1002Cost: 0 Cardinality: 1
16 INDEX RANGE SCAN INDEX PARALLEL_COMBINED_WITH_PARENT CST_DSA.IDX$$_06EF0001 :Q1002Cost: 1 Bytes: 5 Cardinality: 1 -
OCI crash while executing PL/SQL
HI,
I have a multithreaded application which uses OCI. The application has a master thread and spwans 4 child threads that connect to the db and execute specific queries. The problem occurs while trying to execute the last PL/SQL command which includes some bfile operations. I had read that OCI does not mutex properly on LOB operations, but I do not get any error, the application just hangs. Attached is part of the code that has all OCI calls.
The culprit is the update_tables function. The application hangs in there when processing is very close in time for threads.
[] 20080411 10:40:52.255 Oracle NOTICE - [2000][id 1093229] Executing PL/SQL to update all tables
[] 20080411 10:40:52.259 Oracle NOTICE - [2000][id 1093230] Executing PL/SQL to update all tables
[] 20080411 10:40:52.321 Oracle NOTICE - [2000][id 1093231] Executing PL/SQL to update all tables
this is where is hangs.
//!This program is the server portion of the distributed job system.
#include "application.h"
#include "log4cwrapper.h"
//#include "sql.h"
#include <oci.h>
OCIEnv* env;
int main(int argc, char* argv[]){
OCIError* err;
OCIServer* srv;
OCISvcCtx* svc;
OCISession* ses;
sword r;
OCIStmt* initslc;
OCIStmt* comm;
OCIBind *bnd1hp = (OCIBind*) 0;
char stmt[]="commit";
char update_initial[] ="update CONV_IMAGE_JOBS set conv_attempts_cnt = :1";
FILE *log_fd_main;
int sockfd, logfd, pidfd, count = 0, oci_error = 0;
pthread_t job_thread; //!<Threads for image conversion
pthread_attr_t thread_attr; //!<Thread attribute
int *clientfd; //!<Non-negative file descriptor for new socket
pthread_mutexattr_t mattr; //!<Mutex attribute used to set the properties of the mutex
char masterpid[100];
log_fd_main = fopen(log_file, "a");
if (log_fd_main == NULL) {
printf(" ERROR - DjsMaster [0002] Failed to open log file.\n");
exit(1);
r=OCIEnvCreate( &env,
OCI_THREADED
, 0, 0, 0, 0, 0, 0);
if (r != OCI_SUCCESS) {
strcpy(err_msg,"Couldn't create environment (OCIEnvCreate)");
oci_error = 1;
cleanup();
OCIHandleAlloc(env, (dvoid**)&err, OCI_HTYPE_ERROR, 0, 0);
OCIHandleAlloc(env, (dvoid**)&srv, OCI_HTYPE_SERVER, 0, 0);
OCIHandleAlloc(env, (dvoid**)&svc, OCI_HTYPE_SVCCTX, 0, 0);
OCIHandleAlloc(env, (dvoid**)&ses, OCI_HTYPE_SESSION, 0, 0);
r=OCIServerAttach(srv, err, dbname, strlen((const char*)dbname), (ub4) OCI_DEFAULT);
if (r != OCI_SUCCESS) {
checkerrr(err, r, err_msg);
oci_error = 1;
cleanup();
OCIAttrSet(svc, OCI_HTYPE_SVCCTX, srv, 0, OCI_ATTR_SERVER, err);
OCIAttrSet(ses, OCI_HTYPE_SESSION, username,
strlen((const char*)username), OCI_ATTR_USERNAME, err);
OCIAttrSet(ses, OCI_HTYPE_SESSION, password,
strlen((const char*)password), OCI_ATTR_PASSWORD, err);
if ( (r=OCIAttrSet((dvoid *) svc, (ub4) OCI_HTYPE_SVCCTX,
(dvoid *) ses, (ub4) 0, (ub4) OCI_ATTR_SESSION, err)) ) {
checkerrr(err, r,err_msg);
oci_error = 1;
cleanup();
r=OCISessionBegin (svc, err, ses, OCI_CRED_RDBMS, OCI_DEFAULT);
if (r != OCI_SUCCESS) {
checkerrr(err, r,err_msg);
oci_error = 1;
cleanup();
if (OCIHandleAlloc((dvoid *) env, (dvoid **) &initslc,
(ub4) OCI_HTYPE_STMT, (size_t) 0, (dvoid **) 0)) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
if ((r=OCIStmtPrepare(initslc, err, (text*)(void*)update_initial,
(ub4) strlen((char *) update_initial),
(ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) initslc, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
int coun=0;
if ((r = OCIBindByPos(initslc, &bnd1hp, err, (ub4) 1, &coun, sizeof(count), SQLT_INT,
(dvoid *) 0, (ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT))){
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
if ((r = OCIStmtExecute(svc, initslc, err, (ub4) 1, (ub4) 0, (CONST OCISnapshot *) 0,
(OCISnapshot *) 0, (ub4) OCI_DEFAULT))){
checkerrr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) sh, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
if ((r=OCIHandleAlloc((dvoid *) env, (dvoid **) &comm,
(ub4) OCI_HTYPE_STMT, (size_t) 0, (dvoid **) 0))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
if ((r=OCIStmtPrepare(comm, err, (text*)(void*)stmt,
(ub4) strlen((char *) stmt), (ub4) OCI_NTV_SYNTAX,
(ub4) OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) comm, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
if ((r=OCIStmtExecute(svc, comm, err, (ub4) 1, (ub4) 0,
(CONST OCISnapshot *) 0, (OCISnapshot *) 0,
(ub4) OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) comm, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
OCIHandleFree((dvoid *) comm, (ub4) OCI_HTYPE_STMT);
OCIHandleFree((dvoid *) initslc, (ub4) OCI_HTYPE_STMT);
if ((r = OCISessionEnd(svc, err, ses, OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
if ((r = OCIServerDetach(srv, err, OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
if ((r = OCIHandleFree((dvoid*) ses, (ub4) OCI_HTYPE_SESSION))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
if ((r = OCIHandleFree((dvoid*) svc, (ub4) OCI_HTYPE_SVCCTX))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
if ((r = OCIHandleFree((dvoid*) srv, (ub4) OCI_HTYPE_SERVER))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
if ((r = OCIHandleFree((dvoid*) err, (ub4) OCI_HTYPE_ERROR))) {
oci_error = 1;
cleanup();
if ( oci_error == 1) {
cleanup();
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd_main);
mylog_msg("DjsMaster", LOG4C_PRIORITY_DEBUG,
" [0000] daemon running, ready to accept connections,"
"waiting for to connect......");
fclose(log_fd_main);
while (1) {
Accept a connection from a slave.
clientfd = malloc(sizeof(int));
if ((*clientfd = serv_accept(sockfd)) < 0) {
exit(1);
Fork off a child thread to process this slave.
pthread_create(&job_thread, &thread_attr, jobfunction, clientfd);
//count++;
sleep(1);
//!Dump Oracle Error
void cleanup() {
log4c_appender_t* myappender;
myappender = log4c_appender_get("myappender");
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, fopen(log_file, "a"));
mylog_log("DjsMaster", LOG4C_PRIORITY_ERROR,
" [2001] Oracle error %s", err_msg);
void *jobfunction(void *arg) {
OCIError* err;
OCIServer* srv;
OCISvcCtx* svc;
OCISession* ses;
sword r;
OCIBind *bnd1hp = (OCIBind*) 0;
OCIBind *bnd2hp = (OCIBind*) 0;
OCIBind *bnd3hp = (OCIBind*) 0;
OCIDefine *def1hp = (OCIDefine *) 0;
OCIDefine *def2hp = (OCIDefine *) 0;
OCIDefine *def3hp = (OCIDefine *) 0;
OCIDefine *def4hp = (OCIDefine *) 0;
OCIDefine *def5hp = (OCIDefine *) 0;
OCIDefine *def6hp = (OCIDefine *) 0;
OCIDefine *def7hp = (OCIDefine *) 0;
OCIDefine *def8hp = (OCIDefine *) 0;
OCIDefine *def9hp = (OCIDefine *) 0;
char select_all[] =" select filename, filepath, image_system_id, quality_status_cd,"
" format_cd,global_id, id, conv_attempts_cnt, image_resolution"
" from TABLE_NAME where conv_attempts_cnt = 0 order by created_datetime ";
char select_count[] ="select conv_attempts_cnt, image_resolution from TABLE_NAME"
" where id = :1 ";
char update_single[] ="update TABLENAME set conv_attempts_cnt = :1 where id = :2 ";
char stmt[]="commit";
int oci_error = 0;
Variables to hold the values returned from SQL SELECT
int id, global_id, format_cd, quality_status;
int resolution, image_id, conv_attempts_cnt;
char filename[101];
char filepath[201];
char filepath_full[MAX_BUF];
char tif_filename[101];
char return_filepath[MAX_BUF];
char conv_details[MAX_BUF];
char *hold_filename;
char *hold_filepath;
char *hold_tiffile;
char *progress;
char *tempstr_p;
char *jobnum_p;
char *returnname_p;
char *returnsize_p;
char tempstr[MAX_BUF];
int count = 0;
int success_flag = 0;
int reprocess_flag = 0;
char s_resolution[5];
char s_format[5];
struct stat filebuf;
int myfd, datafd, jobid, i, update, holdid;
char sockread[1024], sockwrite[1024],
jobnum[10], dataname[1024],
line_to_log[1024], databuf[1024];
int datasize, bufsize, returnsize, filesize;
FILE *log_fd;
log4c_appender_t* myappender;
myappender = log4c_appender_get("myappender");
log_fd = fopen(log_file, "a");
if (log_fd == NULL) {
perror(" ERROR - DjsMaster [1000] Failed to open log file.\n");
exit(1);
myfd = *((int *)arg);
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_NOTICE,
" [1000] Starting jobs on %d.",
(int)pthread_self());
Readline_r(myfd, sockread, 255);
Continue to read requests received from the slaves.
while (strcmp(sockread, SLAVE_DONE) != 0) {
OCIStmt* slcth;
OCIStmt* updth;
OCIStmt* slcth2;
OCIStmt* comm;
sleep(15);
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_NOTICE,
" [1000] Continue to read request from %d, looping with %s ",
(int)pthread_self(), sockread);
if (strcmp(sockread, REQUEST_JOB) == 0) {
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_NOTICE,
" [1000] %d requesting job. Connecting to database.",
(int)pthread_self());
if (oci_error == 1) {
if ((r = OCIServerDetach(srv, err, OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
cleanup();
if ((r = OCIHandleFree((dvoid*) ses, (ub4) OCI_HTYPE_SESSION))) {
checkerrr(err, r, (text*)err_msg);
cleanup();
if ((r = OCIHandleFree((dvoid*) svc, (ub4) OCI_HTYPE_SVCCTX))) {
checkerrr(err, r, (text*)err_msg);
cleanup();
if ((r = OCIHandleFree((dvoid*) srv, (ub4) OCI_HTYPE_SERVER))) {
checkerrr(err, r, (text*)err_msg);
cleanup();
if ((r = OCIHandleFree((dvoid*) err, (ub4) OCI_HTYPE_ERROR))) {
cleanup();
oci_error = 0;
OCIHandleAlloc(env, (dvoid**)&err, OCI_HTYPE_ERROR, 0, 0);
OCIHandleAlloc(env, (dvoid**)&srv, OCI_HTYPE_SERVER, 0, 0);
OCIHandleAlloc(env, (dvoid**)&svc, OCI_HTYPE_SVCCTX, 0, 0);
OCIHandleAlloc(env, (dvoid**)&ses, OCI_HTYPE_SESSION, 0, 0);
r=OCIServerAttach(srv, err, dbname,
strlen((const char*)dbname), (ub4) OCI_DEFAULT);
if (r != OCI_SUCCESS) {
checkerrr(err, r, err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
OCIAttrSet(svc, OCI_HTYPE_SVCCTX, srv, 0, OCI_ATTR_SERVER, err);
OCIAttrSet(ses, OCI_HTYPE_SESSION, username,
strlen((const char*)username), OCI_ATTR_USERNAME, err);
OCIAttrSet(ses, OCI_HTYPE_SESSION, password,
strlen((const char*)password), OCI_ATTR_PASSWORD, err);
if ( (r=OCIAttrSet((dvoid *) svc, (ub4) OCI_HTYPE_SVCCTX,
(dvoid *) ses, (ub4) 0, (ub4) OCI_ATTR_SESSION, err)) ) {
checkerrr(err, r,err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
r=OCISessionBegin (svc, err, ses, OCI_CRED_RDBMS, OCI_DEFAULT);
if (r != OCI_SUCCESS) {
checkerrr(err, r,err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if (OCIHandleAlloc((dvoid *) env, (dvoid **) &slcth,
(ub4) OCI_HTYPE_STMT, (size_t) 0, (dvoid **) 0)) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIStmtPrepare(slcth, err, (text*)(void*)select_all,
(ub4) strlen((char *) select_all),
(ub4) OCI_NTV_SYNTAX,
(ub4) OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) slcth, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIDefineByPos(slcth, &def1hp, err, 1,
filename, 100, SQLT_CHR, (dvoid *) 0,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT))) {
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIDefineByPos(slcth, &def2hp, err, 2,
filepath, 100, SQLT_CHR, (dvoid *) 0,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT))) {
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIDefineByPos(slcth, &def3hp, err, 3,
&image_id, sizeof(int), SQLT_INT, (dvoid *) 0,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT))) {
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIDefineByPos(slcth, &def4hp, err, 4,
&quality_status, sizeof(int), SQLT_INT,
(dvoid *) 0, (ub2 *) 0, (ub2 *) 0, OCI_DEFAULT))) {
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIDefineByPos(slcth, &def5hp, err, 5,
&format_cd, sizeof(int), SQLT_INT, (dvoid *) 0,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT))) {
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIDefineByPos(slcth, &def6hp, err, 6,
&global_id, sizeof(int), SQLT_INT, (dvoid *) 0,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT))) {
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIDefineByPos(slcth, &def7hp, err, 7,
&id, sizeof(int), SQLT_INT, (dvoid *) 0,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT))) {
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIDefineByPos(slcth, &def8hp, err, 8,
&conv_attempts_cnt, sizeof(int), SQLT_INT, (dvoid *) 0,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT))) {
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
if ((r=OCIDefineByPos(slcth, &def9hp, err, 9,
&resolution, sizeof(int), SQLT_INT, (dvoid *) 0,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT))) {
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIStmtExecute(svc, slcth, err, (ub4) 0, (ub4) 0,
(CONST OCISnapshot *) 0, (OCISnapshot *) 0,
(ub4) OCI_DEFAULT))){
checkerr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) slcth, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
r = OCIStmtFetch(slcth, err, (ub4) 1, (ub4) OCI_FETCH_NEXT, (ub4) OCI_DEFAULT);
if (r == OCI_SUCCESS) {
success_flag = 1;
reprocess_flag = 0;
else if (r == OCI_SUCCESS_WITH_INFO) {
success_flag = 1;
reprocess_flag = 0;
else {
if (r != OCI_NO_DATA) {
checkerr(err, r, (text*)err_msg);
success_flag = 0;
success_flag = 0;
OCIHandleFree((dvoid *) slcth, (ub4) OCI_HTYPE_STMT);
No job in the table. Continue listening. Tell the slave
there are no current jobs to process.
if (! (success_flag)) {
if ((r = OCISessionEnd(svc, err, ses, OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIServerDetach(srv, err, OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIHandleFree((dvoid*) ses, (ub4) OCI_HTYPE_SESSION))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIHandleFree((dvoid*) svc, (ub4) OCI_HTYPE_SVCCTX))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIHandleFree((dvoid*) srv, (ub4) OCI_HTYPE_SERVER))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIHandleFree((dvoid*) err, (ub4) OCI_HTYPE_ERROR))) {
oci_error = 1;
cleanup();
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_NOTICE,
" [1000] No new jobs, writing to %d %s",
(int)pthread_self(), sockwrite);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
success_flag = 0;
continue;
/* New job is fetched, process it. */
else {
reprocess_flag = 0;
reprocess: log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("Oracle", LOG4C_PRIORITY_DEBUG,
" [2000][id %d] Fetching data for new job from databse", id);
mylog_log("Oracle", LOG4C_PRIORITY_DEBUG,
" [2000][id %d]Fetched job_id=%d, format=%d, resolution=%d, conv_attemtps=%d, imagefile=%s, imagepath=%s",
id, id, format_cd, resolution,
conv_attempts_cnt, filename, filepath);
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_NOTICE,
" [1000][id %d] New job for %d. Job will be processed.",
id, (int)pthread_self());
holdid = id;
if ( reprocess_flag == 1 )
OCIHandleAlloc(env, (dvoid**)&err, OCI_HTYPE_ERROR, 0, 0);
OCIHandleAlloc(env, (dvoid**)&srv, OCI_HTYPE_SERVER, 0, 0);
OCIHandleAlloc(env, (dvoid**)&svc, OCI_HTYPE_SVCCTX, 0, 0);
OCIHandleAlloc(env, (dvoid**)&ses, OCI_HTYPE_SESSION, 0, 0);
r=OCIServerAttach(srv, err, dbname, strlen((const char*)dbname), (ub4) OCI_DEFAULT);
if (r != OCI_SUCCESS) {
checkerrr(err, r, err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
OCIAttrSet(svc, OCI_HTYPE_SVCCTX, srv, 0, OCI_ATTR_SERVER, err);
OCIAttrSet(ses, OCI_HTYPE_SESSION, username, strlen((const char*)username), OCI_ATTR_USERNAME, err);
OCIAttrSet(ses, OCI_HTYPE_SESSION, password, strlen((const char*)password), OCI_ATTR_PASSWORD, err);
if ( (r=OCIAttrSet((dvoid *) svc, (ub4) OCI_HTYPE_SVCCTX, (dvoid *) ses, (ub4) 0, (ub4) OCI_ATTR_SESSION, err)) ) {
checkerrr(err, r,err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
r=OCISessionBegin (svc, err, ses, OCI_CRED_RDBMS, OCI_DEFAULT);
if (r != OCI_SUCCESS) {
checkerrr(err, r,err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if (OCIHandleAlloc((dvoid *) env, (dvoid **) &slcth2,
(ub4) OCI_HTYPE_STMT, (size_t) 0, (dvoid **) 0)) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIStmtPrepare(slcth2, err, (text*)(void*)select_count,
(ub4) strlen((char *) select_count),
(ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) slcth2, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIDefineByPos(slcth2, &def1hp, err, 1,
&conv_attempts_cnt, sizeof(int), SQLT_INT, (dvoid *) 0,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT))) {
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIBindByPos(slcth2, &bnd1hp, err, (ub4) 1,
&holdid, sizeof(int), SQLT_INT,
(dvoid *) 0, (ub2 *) 0, (ub2 *) 0, (ub4) 0,
(ub4 *) 0, OCI_DEFAULT))){
checkerr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIStmtExecute(svc, slcth2, err, (ub4) 0, (ub4) 0,
(CONST OCISnapshot *) 0,
(OCISnapshot *) 0, (ub4) OCI_DEFAULT))){
checkerr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) slcth2, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
r = OCIStmtFetch(slcth2, err, (ub4) 1,
(ub4) OCI_FETCH_NEXT, (ub4) OCI_DEFAULT);
if (r == OCI_SUCCESS) {
success_flag = 1;
else if (r == OCI_SUCCESS_WITH_INFO) {
success_flag = 1;
else {
if (r != OCI_NO_DATA) {
checkerr(err, r, (text*)err_msg);
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
OCIHandleFree((dvoid *) slcth2, (ub4) OCI_HTYPE_STMT);
count = conv_attempts_cnt;
count++;
/* Updating conv_attemtpts_cnt for the current job */
if (OCIHandleAlloc((dvoid *) env, (dvoid **) &updth,
(ub4) OCI_HTYPE_STMT, (size_t) 0, (dvoid **) 0)) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIStmtPrepare(updth, err, (text*)(void*)update_single,
(ub4) strlen((char *) update_single), (ub4) OCI_NTV_SYNTAX,
(ub4) OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) updth, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIBindByPos(updth, &bnd2hp, err, (ub4) 1, &count,
sizeof(count), SQLT_INT, (dvoid *) 0, (ub2 *) 0,
(ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT))){
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIBindByPos(updth, &bnd3hp, err, (ub4) 2, &holdid,
sizeof(holdid), SQLT_INT, (dvoid *) 0, (ub2 *) 0,
(ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT))){
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIStmtExecute(svc, updth, err, (ub4) 1, (ub4) 0,
(CONST OCISnapshot *) 0, (OCISnapshot *) 0,
(ub4) OCI_DEFAULT))){
checkerrr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) updth, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIHandleAlloc((dvoid *) env, (dvoid **) &comm,
(ub4) OCI_HTYPE_STMT, (size_t) 0, (dvoid **) 0))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIStmtPrepare(comm, err, (text*)(void*)stmt,
(ub4) strlen((char *) stmt),
(ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) comm, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r=OCIStmtExecute(svc, comm, err, (ub4) 1,
(ub4) 0, (CONST OCISnapshot *) 0, (OCISnapshot *) 0,
(ub4) OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
OCIHandleFree((dvoid *) comm, (ub4) OCI_HTYPE_STMT);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
OCIHandleFree((dvoid *) comm, (ub4) OCI_HTYPE_STMT);
OCIHandleFree((dvoid *) updth, (ub4) OCI_HTYPE_STMT);
if ((r = OCISessionEnd(svc, err, ses, OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIServerDetach(srv, err, OCI_DEFAULT))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIHandleFree((dvoid*) ses, (ub4) OCI_HTYPE_SESSION))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIHandleFree((dvoid*) svc, (ub4) OCI_HTYPE_SVCCTX))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIHandleFree((dvoid*) srv, (ub4) OCI_HTYPE_SERVER))) {
checkerrr(err, r, (text*)err_msg);
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
if ((r = OCIHandleFree((dvoid*) err, (ub4) OCI_HTYPE_ERROR))) {
oci_error = 1;
cleanup();
success_flag = 0;
sprintf(sockwrite, "%s", NO_JOB);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
continue;
hold_filename = strtok_r(filename, " ", &progress);
strcpy(filename,hold_filename);
strcpy(tif_filename, filename);
hold_tiffile = strtok_r(tif_filename, ".", &progress);
strcpy(tif_filename, hold_tiffile);
strcat(tif_filename, ".tif");
hold_filepath = strtok_r(filepath, " ", &progress);
strcpy(filepath, hold_filepath);
strcpy(return_filepath, filepath);
strcat(return_filepath, "/");
strcat(return_filepath, filename);
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_DEBUG,
" [1000][id %d] Image %s located in %s will be converted to image filename %s ",
holdid, tif_filename, filepath, filename);
if (tif_filename == NULL) {
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_WARN,
" [1001][id %d] No file to convert. No file name associated with the job",
holdid);
sprintf(sockwrite, "%s", NO_JOB);
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_NOTICE,
" [1000][id %d] No job to perform. Writing to %d %s",
holdid, (int)pthread_self(), sockwrite);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
if ( count <= max_failure ) {
success_flag = 1;
reprocess_flag = 1;
goto reprocess;
else {
success_flag = 0;
continue;
//continue;
strcpy(filepath_full, filepath);
strcat(filepath_full, "/");
strcat(filepath_full, tif_filename);
if (stat(filepath_full, &filebuf) < 0) {
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_WARN,
" [1002][id %d] Could not stat the file %s. Nothing to send to %d ",
holdid, filepath_full, (int)pthread_self());
sprintf (sockwrite, "%s", NO_JOB);
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_NOTICE,
" [1000][id %d] No job to perform. Writing to %d %s",
holdid, (int)pthread_self(), sockwrite);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
Readline_r(myfd, sockread, 255);
if ( count <= max_failure ) {
success_flag = 1;
reprocess_flag = 1;
goto reprocess;
else {
success_flag = 0;
continue;
//continue;
datasize = (int)filebuf.st_size;
sprintf(s_resolution, "%d", resolution);
sprintf(s_format, "%d", format_cd);
strcpy(conv_details, "./conv.sh:");
strcat(conv_details, tif_filename);
strcat(conv_details, ":");
strcat(conv_details, s_resolution);
strcat(conv_details, ":");
strcat(conv_details, s_format);
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_NOTICE,
" [1000][id %d] Writing to socket all conversion details for %d ",
holdid, (int)pthread_self());
sprintf(sockwrite, "%d=%s%%%s%%%d%%%s\n", id, conv_details,
tif_filename, datasize, return_filepath);
log4c_appender_set_type(myappender, log4c_appender_type_get("stream"));
log4c_appender_set_udata(myappender, log_fd);
mylog_log("DjsMaster", LOG4C_PRIORITY_DEBUG, " [1000][id %d] Sending %s",
holdid, sockwrite);
Writen_r(myfd, sockwrite, (int)strlen(sockwrite));
if ((datafd = open(filepath_full, O_RDONLY)) < 0) {
close(myfd);
log4c_appender_set_type(myappender,I wonder how OCI_OBJECT will fix it as the call to OCIServerAttach is the culprit in the update_Tables function.
-
Error while executing the .sql file
Hello,
Every time when i execute the below plsql it's keep throwing the error message as show in below output, this happens even when i manually create the trigger before executing the .sql file of all the below statements, can you please correct me what i am doing wrong here. Thank you.
DROP TABLE FCSDWH.REF_DATA_MASTER;
CREATE TABLE FCSDWH.REF_DATA_MASTER
REF_DATA_MASTER_ID NUMBER PRIMARY KEY,
DESCRIPTION VARCHAR2(255 CHAR),
CREATE_ID VARCHAR2(10 CHAR),
CREATE_DT DATE,
LST_UPD_ID VARCHAR2(10 CHAR),
LST_UPD_DT DATE,
ACT_STRT_DT DATE,
ACT_END_DT DATE
TABLESPACE FCSDWH
STORAGE(INITIAL 50K);
DROP SEQUENCE FCSDWH.REF_DATA_MASTER_SEQ;
CREATE SEQUENCE FCSDWH.REF_DATA_MASTER_SEQ START WITH 1 INCREMENT BY 1;
DROP TRIGGER "FCSDWH.REF_DATA_MASTER_TRG";
CREATE OR REPLACE TRIGGER FCSDWH.REF_DATA_MASTER_TRG
BEFORE INSERT ON FCSDWH.REF_DATA_MASTER
FOR EACH ROW
BEGIN
SELECT FCSDWH.REF_DATA_MASTER_SEQ.NEXTVAL INTO :NEW.REF_DATA_MASTER_ID FROM DUAL;
END;
/Output:
SQL> @/home/smadala/REF_DATA_MASTER.SQL
Table dropped.
Table created.
Sequence dropped.
Sequence created.
DROP TRIGGER "FCSDWH.REF_DATA_MASTER_TRG"
ERROR at line 1:
ORA-04080: trigger 'FCSDWH.REF_DATA_MASTER_TRG' does not exist
Trigger created.
SQL>The trigger is "attached" to the table so when you drop the table the trigger goes as well.
John -
RemoteInvokable Error while executing the sqls through weblogic connection object
Hi, We are getting the following error while trying to execute the sps or sql using
the weblogic connection pool.
1. The client is a simple java program (not Bean).
2. It is processing lots of records (more than 6000). When we are having less no.
of records we are not getting this error. i.e. 200/600 records.
java.sql.SQLException: weblogic.rmi.extensions.RemoteRuntimeException - with nested
exception:
[java.rmi.NoSuchObjectException: RemoteInvokable - id: '334'
Start server side stack trace:
java.rmi.NoSuchObjectException: RemoteInvokable - id: '334'
at weblogic.rjvm.RJVMImpl.dispatchRequest(RJVMImpl.java:627)
I am also attaching here the source file.
Please advise.
Mishra
[UpdateTransWork.java]Hi Surya,
Which weblogic version/ service pack are you using?
Meanwhile, the source of this error could be places
where you close allocated JDBC objects twice. AFAIR
it was fixed in the latest service packs.
Regards,
Slava Imeshev
"Surya Narayan Mishra" <[email protected]> wrote in message
news:3cce522e$[email protected]..
>
Hi, We are getting the following error while trying to execute the sps orsql using
the weblogic connection pool.
1. The client is a simple java program (not Bean).
2. It is processing lots of records (more than 6000). When we are havingless no.
of records we are not getting this error. i.e. 200/600 records.
java.sql.SQLException: weblogic.rmi.extensions.RemoteRuntimeException -with nested
exception:
[java.rmi.NoSuchObjectException: RemoteInvokable - id: '334'
Start server side stack trace:
java.rmi.NoSuchObjectException: RemoteInvokable - id: '334'
at weblogic.rjvm.RJVMImpl.dispatchRequest(RJVMImpl.java:627)
I am also attaching here the source file.
Please advise.
Mishra -
Strange error while execute PL/SQL
Hi All,
I am execting a procedure from user (say USER1) who is having the DBA role granted.
Its getting the errors while creation:
SQL> show errors
Errors for PROCEDURE DISP_DBLOCKS:
LINE/COL ERROR
8/11 PLS-00341: declaration of cursor 'DBLOCK_CURSOR' is incomplete or
malformed
10/8 PL/SQL: SQL Statement ignored
34/15 PL/SQL: ORA-00942: table or view does not exist
42/17 PL/SQL: Item ignored
54/8 PL/SQL: SQL Statement ignored
56/16 PL/SQL: ORA-00942: table or view does not exist
79/8 PL/SQL: SQL Statement ignored
79/33 PLS-00320: the declaration of the type of this expression is
incomplete or malformed
LINE/COL ERROR
82/8 PL/SQL: Statement ignored
82/27 PLS-00320: the declaration of the type of this expression is
incomplete or malformed
But If I execute the same procedure from SYS user, its got created without any errors.
The procedure is using tables SYS.V$LOCK L, SYS.V$SESSION S, SYS.V$PROCESS P, SYS.USER$ U, SYS.OBJ$ T and shows the locking info for DB.
Please let me know if I am missing something and also how to resolve this issue.
Thanks in advanced
BhupinderORA-00942: table or view does not existbecause u don't have permission on some tables
check it by manual issue select from these tables by new user -
Client-side Memory leak while executing PL/SQL and reading from a view
Iam noticing memory leaks in OCCI while performing the following:
Sample function()
1. Obtain a connection
2. Create a statement to execute a PL/SQL procedure
3 Execute the statement created in step #2
4. Terminate the statement created in step #2
5. Create a statement to read from a view which was populated
by executing stored procedure in step #3
6. Execute the statement created in step #5
7. Terminate the statement created in step #5
8. Release the connection
The PL/SQL populates a view with fixed 65,000 records for every execution. PL/SQL opens a cursor, loads 65000 records and populates the target view and closes the cursor at the end. If i invoke the above function it results in memory leak of 4M for every call. I tried several variants such as:
1. Disabling statement caching
2. Using setSQL instead of newly creating second SQL statement
3. Obtaining two separate connections for these two activities (PL/SQL exec and View read)
4. Breaking the sample function into two, one for each of these activities (PL/SQL exec and View read).
All the combinations results in the same behaviour of 4M memory leak.
Iam using Oracle 10g Client/Server 10.2.0.1.0.
Is there any known limitations in this area?Yes. Iam closing the result set and terminating the statement.
My program contains layers of inhouse wrapper classes, which will take some time for
me to present it in pure OCCI calls, to be posted here for your understanding.
After some more debugging, i found that if the connection level statement caching is set to
0, the memory leak is much lower than before.
Thanks.
Message was edited by:
user498920 -
JVM hangs while executing a sql query
My JVM hangs while I try to execute an update query. I am using JDBC thin client and Oracle 9i as database. Can someone please suggest what could be wrong.
I have a serious problem regarding the usage of Prepared Statement.
I am working on J2EE based application with the application server as Oracle 9ias.We have mostly used Prepared in 0ur queries.But one our application got implemented we are facing some strange problems.The first instance was a web page was getting hanged and does not give any results.But this had worked fine in all our testing environment.We analysed the table which it uses and still no result.Finally we changed prepared statement to statement and the result page came within seconds.
The second instance is the main issue.Again a query is getting hanged when we try to process it through the web page.We again tested it by converting from prepared statement to statement and its coming within seconds.
Can someone give me some input.Is there any databse parameter that is controlling this prepared statement or statement. -
Parameter index move while executing PL/SQL stored procedure/function
Hello, community.
Have a question for you. It looked like very easy to write some small JDBC-wrapper to handle stored procedure/functions call for Oracle.
Here is the code snippet of it:
import java.io.Serializable;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
import javax.sql.DataSource;
import oracle.jdbc.driver.OracleTypes;
import org.apache.log4j.Logger;
public class SmallHelper {
public static final int CALL_TYPE__PROCEDURE = 1;
public static final int CALL_TYPE__FUNCTION = 2;
public static final int PARAMETER__IN = 1;
public static final int PARAMETER__OUT = 2;
private static final Logger log = Logger.getLogger(SmallHelper.class);
private Connection con = null;
private CallableStatement statement = null;
private String name;
private int type;
private int resultType;
private HashMap arguments = new HashMap();
* Creates connection using data source as parameter.
* @param ds - data source
* @throws EhlApplicationException
public SmallHelper(DataSource ds) throws Exception {
try {
con = ds.getConnection();
catch (SQLException e) {
ExceptionHelper.process(e);
public void registerProcedure(String name) {
this.name = name;
this.type = CALL_TYPE__PROCEDURE;
public void registerFunction(String name, int resultType) {
this.name = name;
this.resultType = resultType;
this.type = CALL_TYPE__FUNCTION;
* NB! When You're dealing with stored function index should start with number 2!
public void registerArgument(int index, Object value, int type, int inOutType) {
arguments.put(new Long(index), new CallableStatementArgument(value, type, inOutType));
private String getSQL() {
StringBuffer str = new StringBuffer("{ call ");
if ( type == CALL_TYPE__FUNCTION )
str.append(" ? := ");
str.append(name).append("( ");
for ( Iterator i = arguments.values().iterator(); i.hasNext(); ) {
i.next();
str.append("?");
if ( i.hasNext() )
str.append(", ");
str.append(") }");
return str.toString();
public void execute() throws SQLException{
String query = getSQL();
statement = con.prepareCall(query);
if ( type == CALL_TYPE__FUNCTION )
statement.registerOutParameter(1, resultType);
for ( Iterator i = arguments.keySet().iterator(); i.hasNext(); ) {
Long index = (Long) i.next();
CallableStatementArgument argument = (CallableStatementArgument) arguments.get(index);
int type = argument.getType();
if ( argument.getInOutType() == PARAMETER__OUT )
statement.registerOutParameter(index.intValue(), type);
else if ( type != OracleTypes.CURSOR )
statement.setObject(index.intValue(), argument.getValue(), type);
log.info("Executing SQL: "+query);
statement.execute();
public CallableStatement getStatement() {
return statement;
public void close() throws EhlApplicationException {
try {
if (statement != null)
statement.close();
if (con != null)
con.close();
catch (SQLException e) {
EhlSqlExceptionHelper.process(e);
private class CallableStatementArgument implements Serializable{
private Object value;
private int type;
private int inOutType;
public CallableStatementArgument(Object value, int type, int inOutType) {
this.value = value;
this.type = type;
this.inOutType = inOutType;
public int getType() {
return type;
public Object getValue() {
return value;
public int getInOutType() {
return inOutType;
}It was really done in 10-15 mins, so don't be very angry at code quality :)
Here is the problem.:
helper.registerProcedure("pkg_diagnosis.search_diagnosis");
helper.registerArgument(1, null, OracleTypes.CURSOR, EhlJdbcCallableStatementHelper.PARAMETER__OUT);
helper.registerArgument(2, pattern, OracleTypes.VARCHAR, EhlJdbcCallableStatementHelper.PARAMETER__IN);
helper.registerArgument(3, lang, OracleTypes.VARCHAR, EhlJdbcCallableStatementHelper.PARAMETER__IN);
helper.registerArgument(4, EhlSqlUtil.convertSetToString(langs, ","), OracleTypes.VARCHAR, EhlJdbcCallableStatementHelper.PARAMETER__IN);
helper.registerArgument(5, EhlSqlUtil.convertSetToString(diagnosisClass, ","), OracleTypes.VARCHAR, EhlJdbcCallableStatementHelper.PARAMETER__IN);
helper.registerArgument(6, parentId, OracleTypes.NUMBER, EhlJdbcCallableStatementHelper.PARAMETER__IN);
helper.execute();
ResultSet rs = ((OracleCallableStatement) helper.getStatement()).getCursor(1);
procedure definition:
procedure search_diagnosis (l_res OUT dyna_cur,
in_search_string IN VARCHAR2,
in_search_lang IN VARCHAR2,
in_lang_list IN VARCHAR2,
in_diag_class_list IN VARCHAR2,
in_parent_id IN NUMBER) Procedure call has inner check that fail because of som strange reason:
in_search_string has 2 as index, that is correct. but procedure recieves is as number 3 in parameter list (what is in_search_lang). Other parameters are moved to. It seems like a cursor takes 2 places in definition. It's clear that if I put in_search_string as 1 parameter and cursor as 0 I'll get invalid parametr bindong(s) exception. So... any ideas why 2nd parameter is actually 3rd?
Thanks beforehand.hmm...moreover:
if we change procedure to function and call it in a simple way:
CallableStatement stmnt = helper.getConnection().prepareCall("begin ? := pkg_diagnosis.search_diagnosis(?,?,?,?,?); end;");
stmnt.registerOutParameter(1, OracleTypes.CURSOR);
stmnt.setString(2, pattern);
stmnt.setString(3, lang);
stmnt.setString(4, langs);
stmnt.setString(5, diagnosisClass);
stmnt.setObject(6, parentId, OracleTypes.NUMBER);
stmnt.execute();
ResultSet rs = (ResultSet) stmnt.getObject(1);the exception is:
[BEA][Oracle JDBC Driver][Oracle]ORA-06550: line 1, column 14:
PLS-00382: expression is of wrong type
ORA-06550: line 1, column 7:
PL/SQL: Statement ignoredif we return some string or number - it works. but when we want cursor back - it fails.
cursor is defined like ordinary dynamic cursor:
TYPE dyna_cur IS REF CURSOR; -
Getting error while executing the SQL ( ver 8.1.7.0.0)
I am running a simple query involved with joins. When i ran the query with first set of criteria mentioned in the WHERE clause there is no problem. But when I try to run the same just by doing some correction in the WHERE clause, following errors is shown. I tried doing this from TOAD and SQL Analyser. I am getting the same output.
ORA-01114: IO error writing block to file 4 (block # 524242)
ORA-27069: skgfdisp: attempt to do I/O beyond the range of the file
OSD-04026: Invalid parameter passed. (OS 524247)
ORA-01114: IO error writing block to file 4 (block # 524242)
ORA-27069: skgfdisp: attempt to do I/O beyond the range of the file
OSD-04026: Invalid parameter passed. (OS 524247)
Can anyone suggest what is this error all about and resolution for the same. Thanks.
Regards
Srinivasan BCould be a problem with your temp tablespace. Especially if your query is doing a large sort (merge) operation. Usually a simple select does not write any IO. With expetion from the temp tablespace. But I would have expected another error message then.
Without exactly knowing what the problem is i'm hesitant to give an advice. But rethinking your query could be a good starting point.
Message was edited by:
Sven Weller -
Error while executing PL/SQl on Toad
Hi,
I get the following error:
ORA-04031: UNABLE TO ALLOCATE 64 BYTES OF SHARED MEMORY (“SHARED POOL, “Declared BAL NUMBER(8,2);p;errors;errors….)
when I try to run
DECLARE
BAL NUMBER(8,2);
BEGIN
DBMS_OUTPUT.PUT_LINE("HELLO");
END;
Not sure why it is coming.
TIAWhile the double-quotes vs single-quotes should cause an error, I'm not sure the ORA-4031 is the error you should be getting. Might as well fix it and be sure.
I got something similar to your error yesterday, but it occurred after using too much memory when adding a column to a collection. I got a sucessful run (or probably would have if someone hadn't suddenly shut the database down) after removing unnecessary fields in the collection causing it to use less memory.
I wonder if someone else could have been doing something unwieldy while you run your script. Odd coincidences do happen. Your script is so small I can't believe it would cause a memory error, barring dbms_output doing something bizarre with the word "Hello" and double quotes.
Fix the double quotes and see what happens. -
Unix OS /while executing SQL commands needs Error Log
hai ,
I am accessing the Development Server. While executing the SQL commands I need to log the errors. (like Spool in Windows )
Same way , i want to log the error on Unix Environment.
Thanks In Advance.
AnzySpool is a SQL*Plus command, just use it and you'll get your log.
-
Error executing MS sql server procedure
I am getting an error below while executing a SQL server procedure from SOA composite. My jdeveloper and Soa Suite version is 11.1.1.4.
I am using “Oracle’s MS SQL Server Driver (Type 4) Version: 7.0 and later” driver. The SQL Server version is 2005.
To configure the connection I used the steps mentioned in URL below.
http://beatechnologies.wordpress.com/2011/01/31/creating-a-dbadapter-for-mssql-server-in-osb-11g/
The MS SQL procedure signature is as below.
@p_EventId nvarchar IN
@p_EventName_IN nvarchar IN
@p_Agreement_No_IN decimal IN
@p_Acc_Base_Number_IN decimal IN
@p_Acc_Comp_No_IN decimal IN
@p_Account_Company_Name_IN nvarchar IN
@p_Agree_Stat_Code_IN nvarchar IN
@p_Agree_Type_Code_IN nvarchar IN
@p_HeadQtr_Code_IN nvarchar IN
@p_Sales_Off_Name_IN nvarchar IN
@p_Reseller_Name_IN nvarchar IN
@p_Oracle_Order_number_IN decimal IN
@p_License_Effective_Date_IN datetime IN
@p_PO_Number_IN decimal IN
@p_Invoice_Number_IN decimal IN
@p_Invoice_Date_IN datetime IN
@p_Support_Contract_ID_IN decimal IN
@p_Stmt_Of_Capacity_Due_Date_IN datetime IN
@p_Contract_Start_Date_IN datetime IN
@p_Contract_End_Date_IN datetime IN
@p_Contract_Type_IN nvarchar IN
Error message .
<fault>
<bpelFault>
<faultType>0</faultType>
<bindingFault>
<part name="summary">
<summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'CompanySPProdcall' failed due to: Unimplemented object conversion. Conversion of type 1 whose JDBC type is OTHER to a Java object is not supported. An attempt was made to convert type 1 to a Java object using an unsupported JDBC type: OTHER. Use a data type with a supported JDBC type. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary>
</part>
<part name="detail">
<detail>Unimplemented object conversion. Conversion of type 1 whose JDBC type is OTHER to a Java object is not supported. An attempt was made to convert type 1 to a Java object using an unsupported JDBC type: OTHER. Use a data type with a supported JDBC type. </detail>
</part>
<part name="code">
<code>null</code>
</part>
</bindingFault>
</bpelFault>
</fault>
Please let me know the solution for this issue?
Thanks...I had the similar problem and I am using 11.1.1.5.
When I changed the platformClassName to org.eclipse.persistence.platform.database.SQLServerPlatform it worked.
You can find platformClassName in Outbound Connection Properties
Hope this might work :) -
Geeting TIMEOUT while executing a Stored Procedure.
Hi Gurus,
Am facing a TimeOut issue while executing the Sql Stored Procedure.
I have changed a settings of Execution TimeOut to Zero (which is unlimited ), Am still unable to execute the Stored Procedure.
Should i have to add any TimeOut Command in my Sql Stored Procedure. If please suggest me.
Thanks in advance.Time out is the client who throws the error not SQL Server. Please read Erland's article
http://www.sommarskog.se/query-plan-mysteries.html
Are you sure there is blocking/locking? Is that possible someone run BEGIN TRAN and did not properly specify COMMIT TRAN?
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence
Maybe you are looking for
-
Another Media Processor 8100 Upgrade Issue
Hi, A few days ago I posted here about a problem upgrading a Media Processor 8100 (from 6.2.1 to 6.2.4). I was able to solve my problem, but now I've encountered a different problem upgrading a second 8100 box. After I ran the upgrade through the web
-
Can one create a floating window using JSF?
I was recently shown the interface for GMail. I don't have a GMail account, but one of the things I was asked to investigate was whether or not we can create the sort of floating window that appears on the GMail interface when one positions the mouse
-
BDC For Bank Reconsilation.
Dear friends, I want to create BDC for bank reconcillation using Tcodes FF67 and FEBA. So I want to know whether we can create BDC for such a transactional data or there may be any other solution for the same. Beacuse it is very complicated p
-
What is the SQL command to list all tables in a access database(mdb)
hi everyone can anybody tell me how to retreive and display total number of tables or total table name in a particular database in jsp page thank you .
-
Looking for Iphone3 training class?
I am looking for a training class for my Iphone3.