Calling pl/sql api through multiple java threads
Hi All,
I need to call a pl/sql api from multiple java threads simultaneously and all thread will use same db connection.
I want to know if all the threads will simultaneously call the pl/sql api then will the local variable inside pl/sql procedure be shared between them or they will get separate instances of variables.
TIA
You cannot make multiple parallel client calls over the same Oracle session handle. There is a single non-threaded/non-fibre serialised server process servicing client requests for that session. (physical process on Linux/Unix, thread in the oracle.exe process on Windows).
Each thread on the client side, needs its very own Oracle session. Thus each thread will have a server process footprint on the server. Which could be problematic if 10 clients each starts 10 threads - as it means a 100 processes on the server are needed to service these client threads.
Have a look at Overview of OCI Multithreaded Development in the Oracle® Call Interface Programmer's Guide for how to use the threading call interface of the OCI - as oppose to rolling your own where each thread manually needs to deal with is OCI session context.
Similar Messages
-
Call pl/sql API from jsp portlets
HI ALL!
I need to ask from java developers for portal application,How can i call pl/sql API from my jsp portlets,What enhancements in code should i have to follow in addition to use JDBC,I read in FAQ abt portal some thing abt pl/sql wrapper but that was for complex scenarios ,what if my requirement is to call only API functions for contentareas,items,previleges etc.I really need help.
thx
AlizehHi
thanks for ur reply but where were u a month ago,i really started to think that my question was enough stupid not to be answered.At present i have done with jdbc and pl/sql calls ,current concern is for sessions as i see that session id remains same when one user logs out and another logs in(if browser is not closed), same sessionid persists in my java portlet for both users.Is this an expected behaviour?? but yes new session id appears if browser is closed.
.session clear for both application and sso after logout is checked
.broser is set to check for new version each visit for the page
portal version is 3.0.9.8.0 ,we r planning patch to 3.0.9.8.3 soon
once again thx
Alizeh -
Multiple java threads in a JVM created by the invocation interface
Hi,
I have a certain application APP that calls functions of a C library. One of these functions creates a JVM through the invocation interface. In the JVM I create some other threads and a Swing GUI. From the java "main" thread as well as the other threads (including the Swing event dispatcher thread) I need to call dll functions through native java methods. The latter indirectly (through another dll) invoke functions of an API of application APP.
I have problems when making calls from the java threads to the java native library. In some cases everything works well i.e., I'm able to make calls to the java native library from both the "main" java thread and the other threads. In other cases a crash occurs when attempting to access the native library from any threads but the "main" thread.
Can anyone help me on this? Is there any requirement that only the main java thread makes callbacks to C code?
Thanks.> why later sets of java application is taking longer?
Probably because of CPU usage. But could be memory.
>Can I do something here so that later sets of apps also completes in 3 mins
You tune the task, the complete task, to the box. That means you must understand in detail what is taking time and then architect that to make the best use of the available CPUs and memory (and other resources as used by the task.) -
ORABPEL-11811 - Error while calling PL/Sql API Into BPEL Process
Hi,
I have created a BPEL Process for creating a Order in Oracle using the synchronous process.
I have followed the below steps.
1) Created a Stored procedure using the Order Creation API's by passing Recard Type IN parameters.
2) Created Synchronous BPEL Process and called the above Procedure using APPS Adapter.
3) Created a xsd file and mapped the input and output parameter values using Transform Activity.
After the above steps, when I try to run the BPEL process I am getting the below error:
An error occurred while preparing and executing the APPS.PROC_PROC_NAME API. Cause: java.sql.SQLException: ORA-06531: Reference to uninitialized collection
ORA-06512: at "APPS.PROC_PROC_NAME ", line 149
ORA-06512: at line 1
[Caused by: ORA-06531: Reference to uninitialized collection
ORA-06512: at "APPS.PROC_NAME", line 149
ORA-06512: at line 1
; nested exception is:
ORABPEL-11811
Error while trying to prepare and execute an API.
An error occurred while preparing and executing the APPS.PROC_PROC_NAME API. Cause: java.sql.SQLException: ORA-06531: Reference to uninitialized collection.
Can anybody help in resolving the error?
Thanks,
Mastanvali.Here is the API Code..
CREATE OR REPLACE PROCEDURE XXMAST_PRC(
arg_in_p_header_rec IN HeaderObject,
arg_in_p_line_tbl IN arrayLines,
arg_out_x_return_status OUT VARCHAR2,
arg_out_order_number OUT NUMBER,
arg_out_header_id OUT NUMBER,
arg_out_flow_status_code OUT VARCHAR2
) AS
p_api_version_number NUMBER;
x_return_status VARCHAR2(2);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
v_msg_data VARCHAR2(8000);
v_msg_index_out NUMBER(10);
p_header_rec OE_ORDER_PUB.HEADER_REC_TYPE;
p_old_header_rec OE_ORDER_PUB.HEADER_REC_TYPE;
p_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type;
p_old_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type;
p_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type;
p_old_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type;
p_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type;
p_old_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type;
p_Header_price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type;
p_old_Header_Price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type;
p_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type;
p_old_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type;
p_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type;
p_old_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type;
p_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type;
p_old_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type;
p_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type;
p_old_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type;
p_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
p_old_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
p_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type;
p_old_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type;
p_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type;
p_old_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type;
p_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type;
p_old_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type;
p_Line_price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type;
p_old_Line_Price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type;
p_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type;
p_old_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type;
p_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type;
p_old_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type;
p_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type;
p_old_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type;
p_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type;
p_old_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type;
p_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type;
p_old_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type;
p_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type;
p_old_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type;
p_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type;
x_header_rec OE_ORDER_PUB.Header_Rec_Type;
x_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type;
x_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type;
x_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type;
x_Header_price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type;
x_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type;
x_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type;
x_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type;
x_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type;
x_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
x_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type;
x_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type;
x_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type;
x_Line_price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type;
x_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type;
x_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type;
x_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type;
x_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type;
x_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type;
x_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type;
x_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type;
icount NUMBER :=0;
BEGIN
fnd_global.apps_initialize(1318,21623,660);
fnd_client_info.set_org_context(204);
p_header_rec:= OE_ORDER_PUB.G_MISS_HEADER_REC;
SELECT OE_ORDER_HEADERS_S.NEXTVAL INTO p_header_rec.header_id FROM DUAL;
dbms_output.put_line('Header ID = '|| p_header_rec.header_id);
p_api_version_number := 1.0;
------------------------------------------header code-----------------------------------------------------------------------
p_header_rec.order_type_id := arg_in_p_header_rec.order_type_id;
p_header_rec.sold_to_org_id := arg_in_p_header_rec.sold_to_org_id;
p_header_rec.ship_to_org_id := arg_in_p_header_rec.ship_to_org_id;
p_header_rec.transactional_curr_code:= arg_in_p_header_rec.transactional_curr_code;
p_header_rec.order_source_id := arg_in_p_header_rec.order_source_id;
p_header_rec.org_id := arg_in_p_header_rec.org_id;
p_header_rec.ship_from_org_id := arg_in_p_header_rec.ship_from_org_id;
p_header_rec.payment_term_id := arg_in_p_header_rec.payment_term_id;
p_header_rec.price_list_id := 1000;
p_header_rec.freight_terms_code := 'Due'; -- Prepay and Add
p_header_rec.operation := OE_GLOBALS.G_OPR_CREATE;
p_header_rec.pricing_date := SYSDATE;
p_header_rec.creation_date := SYSDATE;
p_header_rec.booked_flag := 'N';
p_header_rec.created_by := 1318;
p_header_rec.last_updated_by := 1318;
p_header_rec.last_update_date := SYSDATE;
p_header_rec.invoice_to_org_id := 1424;
p_header_rec.version_number := 1;
p_header_rec.open_flag := 'Y';
p_header_rec.ordered_date := SYSDATE;
p_header_rec.flow_status_code := 'ENTERED';
p_header_rec.tax_exempt_flag := 'S';
p_header_rec.salesrep_id := -3;
--------------------------------------------LINES CODE------------------------------------------------------------
icount := 0;
for icount in 1 .. arg_in_p_line_tbl.count loop
p_line_tbl(icount) := Oe_Order_Pub.G_MISS_LINE_REC;
SELECT OE_ORDER_LINES_S.NEXTVAL INTO p_line_tbl(icount).line_id FROM DUAL;
dbms_output.put_line('Line ID = '|| p_line_tbl(icount).line_id);
p_line_tbl(icount).inventory_item_id := arg_in_p_line_tbl(icount).inventory_item_id;
p_line_tbl(icount).ordered_quantity := arg_in_p_line_tbl(icount).ordered_quantity;
p_line_tbl(icount).pricing_quantity := arg_in_p_line_tbl(icount).pricing_quantity;
p_line_tbl(icount).line_type_id := arg_in_p_line_tbl(icount).line_type_id;
p_line_tbl(icount).line_number := icount;
p_line_tbl(icount).shipment_number := arg_in_p_line_tbl(icount).shipment_number;
p_line_tbl(icount).ship_to_org_id := arg_in_p_line_tbl(icount).ship_to_org_id;
p_line_tbl(icount).sold_to_org_id := arg_in_p_line_tbl(icount).sold_to_org_id;
p_line_tbl(icount).salesrep_id := arg_in_p_line_tbl(icount).salesrep_id;
p_line_tbl(icount).payment_term_id := arg_in_p_line_tbl(icount).payment_term_id;
p_line_tbl(icount).price_list_id := 1000;
p_line_tbl(icount).operation := OE_GLOBALS.G_OPR_CREATE;
p_line_tbl(icount).open_flag := 'Y';
p_line_tbl(icount).booked_flag := 'N';
p_line_tbl(icount).header_id := p_header_rec.header_id;
p_line_tbl(icount).line_category_code := 'ORDER';
p_line_tbl(icount).order_quantity_uom :='Ea';
p_line_tbl(icount).request_date := SYSDATE;
p_line_tbl(icount).schedule_ship_date := SYSDATE;
p_line_tbl(icount).ship_from_org_id := 204;
p_line_tbl(icount).flow_status_code := 'ENTERED';
p_line_tbl(icount).ship_to_customer_id := 1290;
p_line_tbl(icount).invoice_to_org_id := 1424;
p_line_tbl(icount).tax_exempt_flag := 'S';
p_line_tbl(icount).tax_date := '02-Mar-2005';
p_line_tbl(icount).tax_code := 'Location';
SELECT OE_PRICE_ADJUSTMENTS_S.NEXTVAL INTO p_Line_Adj_tbl(icount).price_adjustment_id FROM DUAL;
dbms_output.put_line('Price Adjustment ID = '|| p_Line_Adj_tbl(icount).price_adjustment_id);
p_Line_Adj_tbl(icount).created_by := 1318;
p_Line_Adj_tbl(icount).header_id := p_header_rec.header_id;
p_Line_Adj_tbl(icount).line_id := p_line_tbl(icount).line_id;
p_Line_Adj_tbl(icount).percent := 10;
p_Line_Adj_tbl(icount).operation := OE_GLOBALS.G_OPR_CREATE;
p_Line_Adj_tbl(icount).list_header_id := 8988;
p_Line_Adj_tbl(icount).list_line_id := 16596;
p_Line_Adj_tbl(icount).list_line_type_code := 'DIS';
p_Line_Adj_tbl(icount).arithmetic_operator := 'AMT';
p_Line_Adj_tbl(icount).updated_flag := 'Y';
p_Line_Adj_tbl(icount).update_allowed := 'Y';
p_Line_Adj_tbl(icount).applied_flag := 'Y';
p_Line_Adj_tbl(icount).automatic_flag := 'N';
p_Line_Adj_tbl(icount).OPERAND := 10;
end loop;
oe_msg_pub.initialize;
oe_order_pub.process_order
( p_api_version_number => p_api_version_number
, p_init_msg_list => FND_API.G_FALSE
, p_return_values => FND_API.G_FALSE
, p_action_commit => FND_API.G_FALSE
, x_return_status => x_return_status
, x_msg_count => x_msg_count
, x_msg_data => x_msg_data
, p_header_rec => p_header_rec
, p_old_header_rec => p_old_header_rec
, p_header_val_rec => p_header_val_rec
, p_old_header_val_rec => p_old_header_val_rec
, p_Header_Adj_tbl => p_Header_Adj_tbl
, p_old_Header_Adj_tbl => p_old_Header_Adj_tbl
, p_Header_Adj_val_tbl => p_Header_Adj_val_tbl
, p_old_Header_Adj_val_tbl => p_old_Header_Adj_val_tbl
, p_Header_price_Att_tbl => p_Header_price_Att_tbl
, p_old_Header_Price_Att_tbl => p_old_Header_Price_Att_tbl
, p_Header_Adj_Att_tbl => p_Header_Adj_Att_tbl
, p_old_Header_Adj_Att_tbl => p_old_Header_Adj_Att_tbl
, p_Header_Adj_Assoc_tbl => p_Header_Adj_Assoc_tbl
, p_old_Header_Adj_Assoc_tbl => p_old_Header_Adj_Assoc_tbl
, p_Header_Scredit_tbl => p_Header_Scredit_tbl
, p_old_Header_Scredit_tbl => p_old_Header_Scredit_tbl
, p_Header_Scredit_val_tbl => p_Header_Scredit_val_tbl
, p_old_Header_Scredit_val_tbl => p_old_Header_Scredit_val_tbl
, p_line_tbl => p_line_tbl
, p_old_line_tbl => p_old_line_tbl
, p_line_val_tbl => p_line_val_tbl
, p_old_line_val_tbl => p_old_line_val_tbl
, p_Line_Adj_tbl => p_Line_Adj_tbl
, p_old_Line_Adj_tbl => p_old_Line_Adj_tbl
, p_Line_Adj_val_tbl => p_Line_Adj_val_tbl
, p_old_Line_Adj_val_tbl => p_old_Line_Adj_val_tbl
, p_Line_price_Att_tbl => p_Line_price_Att_tbl
, p_old_Line_Price_Att_tbl => p_old_Line_Price_Att_tbl
, p_Line_Adj_Att_tbl => p_Line_Adj_Att_tbl
, p_old_Line_Adj_Att_tbl => p_old_Line_Adj_Att_tbl
, p_Line_Adj_Assoc_tbl => p_Line_Adj_Assoc_tbl
, p_old_Line_Adj_Assoc_tbl => p_old_Line_Adj_Assoc_tbl
, p_Line_Scredit_tbl => p_Line_Scredit_tbl
, p_old_Line_Scredit_tbl => p_old_Line_Scredit_tbl
, p_Line_Scredit_val_tbl => p_Line_Scredit_val_tbl
, p_old_Line_Scredit_val_tbl => p_old_Line_Scredit_val_tbl
, p_Lot_Serial_tbl => p_Lot_Serial_tbl
, p_old_Lot_Serial_tbl => p_old_Lot_Serial_tbl
, p_Lot_Serial_val_tbl => p_Lot_Serial_val_tbl
, p_old_Lot_Serial_val_tbl => p_old_Lot_Serial_val_tbl
, p_action_request_tbl => p_action_request_tbl
, x_header_rec => x_header_rec
, x_header_val_rec => x_header_val_rec
, x_Header_Adj_tbl => x_Header_Adj_tbl
, x_Header_Adj_val_tbl => x_Header_Adj_val_tbl
, x_Header_price_Att_tbl => x_Header_price_Att_tbl
, x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl
, x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl
, x_Header_Scredit_tbl => x_Header_Scredit_tbl
, x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl
, x_line_tbl => x_line_tbl
, x_line_val_tbl => x_line_val_tbl
, x_Line_Adj_tbl => x_Line_Adj_tbl
, x_Line_Adj_val_tbl => x_Line_Adj_val_tbl
, x_Line_price_Att_tbl => x_Line_price_Att_tbl
, x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl
, x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl
, x_Line_Scredit_tbl => x_Line_Scredit_tbl
, x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl
, x_Lot_Serial_tbl => x_Lot_Serial_tbl
, x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl
, x_action_request_tbl => x_action_request_tbl
IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
COMMIT;
dbms_output.put_line('Return Status - '|| SUBSTR (x_return_status,1,255));
dbms_output.put_line('------------------------------------');
dbms_output.put_line('Order Number ==== '|| x_header_rec.order_number);
dbms_output.put_line('------------------------------------');
arg_out_x_return_status := x_return_status;
arg_out_order_number := x_header_rec.order_number;
arg_out_header_id := p_header_rec.header_id;
arg_out_flow_status_code := p_header_rec.flow_status_code;
ELSE
dbms_output.put_line('Return Status = '|| SUBSTR (x_return_status,1,255));
dbms_output.put_line('Msg Count = '|| TO_CHAR(x_msg_count));
dbms_output.put_line('Msg Data = '|| SUBSTR (x_msg_data,1,255));
IF x_msg_count >1 THEN
FOR I IN 1..x_msg_count LOOP
Oe_Msg_Pub.get(
p_msg_index => i
,p_encoded => Fnd_Api.G_FALSE
,p_data => v_msg_data
,p_msg_index_out => v_msg_index_out
DBMS_OUTPUT.PUT_LINE('v_msg_index_out '|| v_msg_index_out);
DBMS_OUTPUT.PUT_LINE('v_msg_data '|| v_msg_data);
END LOOP;
END IF;
END IF;
END;
/ -
Calling PL/SQL API from OAF
Hi all,
i have a stored procedure(xyz) in a package (abc) as below:
procedure xyz
(p_validate in boolean default false
,p_ptnl_ler_for_per_id out nocopy number
,p_csd_by_ptnl_ler_for_per_id in number default null
,p_lf_evt_ocrd_dt in date default null
,p_trgr_table_pk_id in number default null
,p_ptnl_ler_for_per_stat_cd in varchar2 default null
,p_ptnl_ler_for_per_src_cd in varchar2 default null
,p_mnl_dt in date default null
,p_enrt_perd_id in number default null
,p_ler_id in number default null
,p_person_id in number default null
,p_business_group_id in number default null
,p_dtctd_dt in date default null
,p_procd_dt in date default null
,p_unprocd_dt in date default null
,p_voidd_dt in date default null
,p_mnlo_dt in date default null
,p_ntfn_dt in date default null
,p_request_id in number default null
,p_program_application_id in number default null
,p_program_id in number default null
,p_program_update_date in date default null
,p_object_version_number out nocopy number
,p_effective_date in date) is
End;
In oaf i am calling this stored procedure in a function as below:
public String callToApi(String event_date, String event_name, String person_id) {
int ler_pk = 0;
int ovn = 0;
LifeEventIdVOImpl LifeEventIdVOObj = getLifeEventIdVO1();
LifeEventIdVOObj.setWhereClauseParams(null);
LifeEventIdVOObj.setWhereClauseParam(0, event_name);
LifeEventIdVOObj.executeQuery();
String ler_id = LifeEventIdVOObj.first().getAttribute("LerId").toString();
try {
OracleCallableStatement oracleCallableStatement = null;
OADBTransactionImpl txn =
(OADBTransactionImpl)getOADBTransaction();
String statement =
"BEGIN" + " abc.xyz(" +
" p_validate => :1" +
" ,p_ptnl_ler_for_per_id => :2" +
" ,p_csd_by_ptnl_ler_for_per_id => NULL" +
" ,p_lf_evt_ocrd_dt => :3" +
" ,p_trgr_table_pk_id => NULL" +
" ,p_ptnl_ler_for_per_stat_cd => 'DTCTD'" +
" ,p_ptnl_ler_for_per_src_cd => NULL" +
" ,p_mnl_dt => NULL" +
" ,p_enrt_perd_id => NULL" +
" ,p_ler_id => :4" +
" ,p_person_id => :5" +
" ,p_business_group_id => 0" +
" ,p_dtctd_dt => :6" +
" ,p_procd_dt => NULL" +
" ,p_unprocd_dt => NULL" +
" ,p_voidd_dt => NULL" +
" ,p_mnlo_dt => NULL" +
" ,p_ntfn_dt => :7" +
" ,p_request_id => NULL" +
" ,p_program_application_id => NULL" +
" ,p_program_id => NULL" +
" ,p_program_update_date => NULL" +
" ,p_object_version_number => :8" +
" ,p_effective_date => :9);" + " END;";
java.util.Date sysdate = new java.util.Date();
java.sql.Date today_date = new java.sql.Date(sysdate.getTime());
java.sql.Date life_event_date = new java.sql.Date(new java.util.Date(event_date).getTime());
oracleCallableStatement = (OracleCallableStatement)txn.createCallableStatement(statement, DBTransaction.DEFAULT);
oracleCallableStatement.setBoolean(1, Boolean.FALSE);
oracleCallableStatement.registerOutParameter(2, Types.INTEGER);
oracleCallableStatement.setDate(3, life_event_date);
oracleCallableStatement.setInt(4, Integer.parseInt(ler_id));
oracleCallableStatement.setInt(5, Integer.parseInt(person_id));
oracleCallableStatement.setDate(6, today_date);
oracleCallableStatement.setDate(7, today_date);
oracleCallableStatement.registerOutParameter(8, Types.INTEGER);
oracleCallableStatement.setDate(9, today_date);
oracleCallableStatement.execute();
ler_pk = oracleCallableStatement.getInt(2);
ovn = oracleCallableStatement.getInt(8);
System.out.println(ler_pk);
System.out.println(ovn);
catch (Exception e) {
e.printStackTrace();
return(ler_pk + "/" + ovn);
But i am getting an error as:
java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'xyz' ORA-06550: line 1, column 7: PL/SQL: Statement ignored
But i think i have provided the right set of inputs...
Please have a look and let me know where i am wrong....
its urgent.. please reply asapShivam,
Use below code & let us know whether still throws the same error.
try
Connection conn = getOADBTransaction().getJdbcConnection();
CallableStatement cstmt = conn.prepareCall
("{call xyz (:1, :2, :3)}");
System.out.println("1" + Id);
cstmt.setString(1, IjpId);
System.out.println("2" + EmpNum);
cstmt.setString(2, EmpNum );
System.out.println("3" + EmpPositionTitle);
cstmt.setString(3, EmpPositionTitle );
System.out.println("before calling");
cstmt.execute();
System.out.println("after calling");
cstmt.close();
catch(Exception e)
String message = "Error in Data Saving: " + e;
throw new OAException(message, OAException.ERROR);
}Regards,
Gyan -
How to call a sql stored procedure in java...... HELP
Hi I am making an application for taking backup in sql automatically so i have created a dts package which is called by a stored procedure. Now the problem is that how to call that stored procedure in a Java program so that after running my java program i get my database backup.
Please please solve my problem.
thanks in advance.
If possible please send the code.
Message was edited by:
Andy_Davis
Message was edited by:
Andy_DavisHi... I am trying to create a dts package which is called by a stored procedure... How can i do this? IF possible can you please send me the code as well..
Thanks a ton...
Susan_Davis -
Calling PL/SQL function from external Java class
I was wondering if I was able to call a pl/sql function from an external java class? If so, would you be able to tell me briefly on how to go about it. I know I can call java methods that are internally stored in the db from pl/sql, but I was hoping I could call pl/sql from external java. Thanks,
KellyOk, I made the changes, but I'm now getting the following error:
Error code = 1403
Error message = ORA-01403: no data found
ORA-06512: at "IOBOARD.GETSTATUS", line 6
ORA-06512: at line 1
The ora-01403 I don't understand because there is data for the name Kelly.Brace.
ora-06512 error: at string line string.
Here's what the code looks like after I made the changes:
String sql = "{?=call ioboard.GetStatus(?)}";
// create a Statement object
myStatement = myConnection.prepareCall( sql );
myStatement.setString( 1, "Kelly.Brace" );
myStatement.registerOutParameter(2, java.sql.Types.LONGVARCHAR );
// create a ResultSet object, and populate it with the
// result of a SELECT statement
ResultSet myResultSet = myStatement.executeQuery();
// retrieve the row from the ResultSet using the
// next() method
myResultSet.next();
// retrieve the user from the row in the ResultSet using the
// getString() method
String status = myResultSet.getString(1);
System.out.println("Hello Kelly, your status is: " + status);
// close this ResultSet object using the close() method
myResultSet.close();Here's what the function looks like:
CREATE OR REPLACE FUNCTION GetStatus( user_name in varchar2)
RETURN VARCHAR2
is
v_status varchar2(10);
BEGIN
select iob_location into v_status
from ioboard.iob_user
where iob_username = user_name;
RETURN( v_status);
END;This works perfectly in the SQL Window:
select iob_location
from ioboard.iob_user
where iob_username = 'Kelly.Brace'; -
Calling pl/sql procedure from a java class.
I have an onSubmit event that needs to call a pl/sql procedure using the named connection. Can anyone tell me how this is code in a Model 1 ADF JSP page?
Look at the following related thread:
Programatically setting attribute values. -
ORA-28509 when calling PL/SQL mq message throught Java Application
I have a PL/SQL procedure called "prc_send_mq_message" witch works perfectly when I invoke throught database users where it is compiled.
But when this same procedure is invoked by Java Application witch connects with the same user, the error: "ORA-28509: was not possible stablish connectinon with Non_Database Oracle" happens.
Can anyone help me ?
See pl/sqlblock bellow:
Create or replace procedure prc_send_mq_message Is
pi_db_link_name Varchar2(100) := 'siibdg4mq';
pi_queue_name Varchar2(100) := 'QL.REQ.SIIB.FBS.01';
vObjDesc PGM.MQOD;
vHandleObj PGM.MQOH;
vMsgDesc PGM.MQMD;
vPutOpt PGM.MQPMO;
--options PGM.MQPMO;
vPutBuffer Raw(32767);
Begin
-- Opening the queue:
vObjDesc.DBLINKNAME := pi_db_link_name;
vObjDesc.OBJECTNAME := pi_queue_name;
pgm.mqopen( vObjDesc, PGM_SUP.MQOO_OUTPUT, vHandleObj ); --> ORA-28509: was not possible stablish connectinon with Non_Database Oracle
End;
/Hi,
This is the Oracle MessageQ forum, not the WebLogic Server, Oracle Database, or Oracle JMS forum. You will likely have better success in getting your question answered by using one of the Database related forums.
Regards,
Todd Little
Oracle Tuxedo Chief Architect -
Help!! how to call pl/sql anonymous block from java?
I know that jdbc can call a pl/sql package or procedure,but if i
want to call a pl/sql anonymous block, how can i do it? no procedure
name or package name will be offered.
Can u give me a sample code? thanks very muchthanks ,but do u make sure that it can work? i have tried to do like this ,but i can not get it. Or please give me a detail code, thanks very much
-
Calling PL/Sql Stored Procedure from java file
Having problem in calling oracle stored procedure using bc4j.
in ApplicationModuleImpl you can use following e.g.
on client side use a custom method to access
try {
DBTransaction dBTransaction = getDBTransaction();
String stmt = "CALL CHANGE_OWNER( ?, ?)";
CallableStatement callableStatement = dBTransaction.createCallableStatement(stmt,DBTransaction.DEFAULT);
callableStatement.setString( 1, oldOwner );
callableStatement.setString( 2, newOwner );
callableStatement.execute();
} catch (SQLException ex) {
throw new JboException(ex);
} -
How to connect yahoo Api through a java program
Dear All,
I have problem in my java program. i have created two text field one is for username and another is for password.when we will give a yahoo id in one textfield and after that we will give the yahoo password in the other textfield. It will directly go to the yahoo server and collect all the friend lists which we have get in our program.please anybody tell me in this regards.
Thanks and Regards
Abhiram Sahoo.Which one? The one full of SPAM, my work address, or my one I use for my personal account?
I think on my SPAM account, I'm down to less than 200 a day, I'll hve to go try to win that 54 inch Sharp Auquos again. -
Help calling JNI function from a java thread
I am using the following code to call a JNI fuction from a java thread:
public class CMSMessageHandler extends MessageHandler{
static{
System.loadLibrary("jastb");
public native int cmsReadIt(ByteBuffer buff);
private ByteBuffer dirbuf = null;
/** Creates a new instance of CMSMessageHandler */
public CMSMessageHandler() {
// allocate to max size datagram
dirbuf = ByteBuffer.allocateDirect(65536);
public void readMessages(){
/*Thread worker = new Thread(){
public void run(){*/
int count;
while (true){
try{
count = cmsReadIt(dirbuf);
} catch (Exception e){
e.printStackTrace();
worker.start();*/
public static void main(String[] args) {
CMSMessageHandler handler = new CMSMessageHandler();
handler.readMessages();
When I run this main method with the thread commented out, it works great. When I run the main method with the thread, it works great for a while, and then funny things start happening with the native library I am using. My native library uses shared memory, signals, and semaphores. It feels a bit like my java program is stomping on the resources that my native library is using, when a run the java program with a thread.
Is there something I don't know about calling native code from a thread? Should I be doing something explicitly to protect my native library's shared memory, signals, or semaphores?
Thanks,
Lisa.Does the library do any initialization when loaded? Does it make a dangerous assumption that the thead calling cmdReadIt will always be the same thread that initially loaded it? Try loading the library in the worker thread instead of in the main thread via the static initializer.Yes. There is a call to another native method cmsOpenIt that does CMS initialization. I put cmsOpenIt as well as the System.loadLibrary("jastb") in the worker thread and I'm still experiencing the same problems.
Incidently, the mere presence of another Thread in this program does not seem to cause problems. It's only when I run calls to cmsReadIt in a thread that I get into trouble.
For example, this works fine:
public class CMSMessageHandler extends MessageHandler{
public native int cmsReadIt(ByteBuffer buff);
public ByteBuffer dirbuf = null;
static {
System.loadLibrary("jastb");
public CMSMessageHandler() {
// allocate to max size datagram
dirbuf = ByteBuffer.allocateDirect(65536);
public void readMessages(){
try{
int count = 0;
while (true){
count = cmsReadIt(dirbuf);
} catch (Exception e){
public static void main(String[] args) {
CMSMessageHandler handler = new CMSMessageHandler();
Thread worker = new Thread(){
public void run(){
while (true){
try{
Thread.currentThread().sleep(1000);
System.out.println("sleep thread.");
} catch (Exception e){
e.printStackTrace();
worker.start();
handler.readMessages();
}Are there JVM flags that I should experiment with that might help mitigate/diagnose this problem? -
How to call a PL/SQL procedure from a Java class?
Hi,
I am new to the E-BusinessSuite and I want to develop a Portal with Java Portlets which display and write data from some E-Business databases (e.g. Customer Relationship Management or Human Resource). These data have been defined in the TCA (Trading Community Architecture) data model. I can access this data with PL/SQL API's. The next problem is how to get the data in the Java class. So, how do you call a PL/SQL procedure from a Java program?
Can anyone let me know how to solve that problem?
Thanks in advance,
Chang Si ChouHave a look at this example:
final ApplicationModule am = panelBinding.getApplicationModule();
try
final CallableStatement stmt = ((DBTransaction)am.getTransaction()).
createCallableStatement("{? = call some_pck.some_function(?, ?)}", 10);
stmt.registerOutParameter(1, OracleTypes.VARCHAR);
stmt.setInt(2, ((oracle.jbo.domain.Number)key.getAttribute(0)).intValue());
stmt.setString(3, "Test");
stmt.execute();
stmt.close();
return stmt.getString(1);
catch (Exception ex)
panelBinding.reportException(ex);
return null;
}Hope This Helps -
Calling a web service through SSL via a stand alone java class
HI,
I am trying to call a web service through SSL via a simple stand alone java client.
I have imported the SSL certificate in my keystore by using the keytool -import command.
Basically I want to add a user to a group on the server. Say I add a user user 1 to group group 1 using an admin userid and password. All these values are set in an xml file which I send to the server while calling the server. I pass the web service URL, the soap action name and the xml to post as the command line arguments to the java client.
My xml file(Add.xml) that is posted looks like :
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:xsi = "http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENC = "http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV = "http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd = "http://www.w3.org/1999/XMLSchema"
SOAP-ENV:encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<namesp1:modifyGroupOperation xmlns:namesp1 = "/services/modifyGroup/modifyGroupOp">
<auth>
<user>adminUser</user>
<password>adminPassword</password>
</auth>
<operationType>ADD</operationType>
<groupName>group1</groupName>
<users>
<userName>user1</userName>
</users>
</namesp1:modifyGroupOperation>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
I call the client as:
java PostXML https://com.webservice.com/services/modifyGroup "/services/modifyGroup/modifyGroupOp" Add.xml
I my client, I have set the following:
System.setProperty("javax.net.ssl.keyStore", "C:\\Program Files\\Java\\jre1.5.0_12\\lib\\security\\cacerts");
System.setProperty("javax.net.ssl.keyStorePassword", "password");
System.setProperty("javax.net.ssl.trustStore", "C:\\Program Files\\Java\\jre1.5.0_12\\lib\\security\\cacerts");
System.setProperty("javax.net.ssl.trustStorePassword", "password");
But when I try to execute the java client, I get the following error:
setting up default SSLSocketFactory
use default SunJSSE impl class: com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl
class com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl is loaded
keyStore is : C:\Program Files\Java\jre1.5.0_12\lib\security\cacerts
keyStore type is : jks
keyStore provider is :
init keystore
init keymanager of type SunX509
trustStore is: C:\Program Files\Java\jre1.5.0_12\lib\security\cacerts
trustStore type is : jks
trustStore provider is :
init truststore
adding as trusted cert:
init context
trigger seeding of SecureRandom
done seeding SecureRandom
instantiated an instance of class com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl
main, setSoTimeout(0) called
main, setSoTimeout(0) called
%% No cached client session
*** ClientHello, TLSv1
RandomCookie: GMT: .....
Compression Methods: { 0 }
[write] MD5 and SHA1 hashes: len = 73
main, WRITE: TLSv1 Handshake, length = 73
[write] MD5 and SHA1 hashes: len = 98
main, WRITE: SSLv2 client hello message, length = 98
[Raw write]: length = 100
[Raw read]: length = 5
[Raw read]: length = 58
main, READ: TLSv1 Handshake, length = 58
*** ServerHello, TLSv1
%% Created: [Session-1, SSL_RSA_WITH_RC4_128_MD5]
** SSL_RSA_WITH_RC4_128_MD5
[read] MD5 and SHA1 hashes: len = 58
[Raw read]: length = 5
[Raw read]: length = 5530
main, READ: TLSv1 Handshake, length = 5530
*** Certificate chain
chain [0] = ...
chain [1] = ...
chain [2] = ...
chain [3] = ...
main, SEND TLSv1 ALERT: fatal, description = certificate_unknown
main, WRITE: TLSv1 Alert, length = 2
[Raw write]: length = 7
0000: 15 03 01 00 02 02 2E .......
main, called closeSocket()
main, handling exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
main, called close()
main, called closeInternal(true)
main, called close()
main, called closeInternal(true)
main, called close()
main, called closeInternal(true)
Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.c
ertpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:506)
at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2110)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1088)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at PostXML.main(PostXML.java:111)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find v
alid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(Unknown Source)
... 18 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
... 23 more
I do not know where I have gone wrong. Could someone point out my mistake.
Thanks In advance!Hi jazz123,
There's an example in the [*Java Web Services Tutorial*|http://java.sun.com/webservices/docs/2.0/tutorial/doc/] : see Chapter 1: Building Web Services with JAX-WS - A Simple JAX-WS Client.
Maybe you are looking for
-
Have CS5 and CS6. Need to reduce size of file from 6Mb to 2 Mb for contest purposes without losing original
-
While doing cutover activity what should be the status of the Open production order, open purchase order & open deliveries for sales. We are using fixed bin for production staging so release production order etc it will not create transfer requirem
-
I signed into my Apple ID on a new phone and I already had it on my iPod. When I signed into the new phone it won't let me buy anything unless I know my old security questions but I don't know the answers to them. How can I get past those or change t
-
When I tried to backup online /usr by ufsdump and create snapshot, I got next error- snapshot error: File system could not be write locked. Why ? It was declared in documentation, that snapshot must be executed with anyone filesystem. Help me, please
-
Can I use oracle to build our webiste for free?
Hi all~~ I am a student in unversity and learning oracle database technology. Moreover,I hope to put it into practise. Therefore,I wanna use oracle and Java EE to build our own website for our club(an organization in our school) and we will deploy it