Oracle proc call from CF has 4sec overhead
G'day
I've been troubleshooting a slow-running Oracle (9i)
proecdure call, which
was coming in at 4sec. When run via a Oracle SQL Developer
window, it runs
in 0ms, which is more like what I'd expect form the amount of
work it's
doing.
I applied FusionReactor to the situation, and it's reporting
that the proc
is indeed *running* in 0ms, but the added overhead of CF
calling it is
4sec. From the "Longest JDBC" screen, the figures were:
Total Time(ms): 3845
DB Time(ms): 0
What on earth is CF doing?
Notes:
- it's returning zero rows, so it's not a data-transmission
overhead.
- the DB is running on the same box as CF.
- it's not a one-off. Running the proc with different input
data (which
would yield any number of rows returned from 0 to 30000-odd)
seems to make
little difference. The DB side of things runs between
0-100ms, and then
there's close to a 4sec overhead added by CF.
The stored proc is running a couple of select queries (a
value from the
first contributing to the second), and returning a single
resultant record
set. Nothing complicated.
Any ideas?
Adam
> Is the problem with a single SP, or set of SPs, or all
of your proc calls? If
It was happening on more than just that one, but it's the one
that's called
the most frequently, so sticks out more. I'm offsite @
present so can't
check more thoroughly if it's that package, or all, some, or
what. I'll
check tomorrow.
> it is just one, you might provide your PL/SQL and
ColdFusion
> cfstoredproc/cfprocparam/cfprocresult tags so that we
may have a chance of
> spotting something.
Yeah, I thought about that: it's usually the first thing I
say when
someone's asking for help too "it's a bit bloody hard to tell
what's going
on... etc".
If it was just a "why's my query / proc runnning slow on CF:
it runs fine
when I run it in query analyser" I'd agree that seeing that
stuff would
make sense. However monitoring the JDBC connection I can
*see* that the
proc is running fine: the DB server is reporting to the JDBC
driver that
it's taking 0ms to run. It's just the comms from the driver
to CF (or
vice-versa) that's killing the time.
I dunno if this code will help you @ all, without seeing
really a lot of
the rest of the underlying code, but... 'ere 'tis.
{code}
<cfstoredproc procedure="pkg_tree.proc_getAncestors"
datasource="#sDsn#"
result="stResult">
<cfprocparam type="in" cfsqltype="CF_SQL_VARCHAR"
value="#uNode#">
<!--- uNode in varchar2 --->
<cfprocparam type="in" cfsqltype="CF_SQL_VARCHAR"
value="#bDetail#"> <!---
sDetail in varchar2 --->
<cfprocparam type="in" cfsqltype="CF_SQL_VARCHAR"
value="#sFilter#">
<!--- sFilter in varchar2 --->
<cfprocparam type="in" cfsqltype="CF_SQL_VARCHAR"
value="#sSort#"> <!---
sTypeSort in varchar2 --->
<cfprocparam type="in" cfsqltype="CF_SQL_VARCHAR"
value="#bSelf#"><!---
sSelf in varchar2 --->
<cfprocresult name="qReturn"> <!--- qAncestors out
cResultSet --->
</cfstoredproc>
{code}
{code}
procedure proc_getAncestors(uNode in varchar2, sDetail in
varchar2, sFilter
in varchar2, sTypeSort in varchar2, sSelf in varchar2,
qAncestors out
cResultSet) is
type tNode is record(obt_left int, obt_right int);
rSelf tNode;
sSql varchar2(600);
sWhere varchar2(100);
sSortExpression varchar(200);
sTail varchar2(100);
sErrMsg varchar2(1024);
begin
case sSelf
when 'TRUE' then
sWhere := ' where obt_left <= :iLeft and obt_right >=
:iRight';
when 'FALSE' then
sWhere := ' where obt_left < :iLeft and obt_right >
:iRight';
else
raise_application_error(-20021, 'Invalid sSelf parameter
value passed to
proc_getAncestors');
end case;
case sTypeSort
when 'NONE' then
sSortExpression := ' order by obt_left';
when 'SECTION' then
sSortExpression := ' order by decode(obt_type,
''SECTION'',1,
''PAGE'',2, ''FILE'',3, ''LINK'',4), obt_left';
when 'PAGE' then
sSortExpression := ' order by decode(obt_type, ''PAGE'',1,
''SECTION'',2, ''FILE'',3, ''LINK'',4), obt_left';
when 'FILE' then
sSortExpression := ' order by decode(obt_type, ''FILE'',1,
''SECTION'',2, ''PAGE'',3, ''LINK'',4), obt_left';
when 'LINK' then
sSortExpression := ' order by decode(obt_type,
''LINK'',1,''SECTION'',2, ''PAGE'',3,''FILE'',4), obt_left';
else
raise_application_error(-20022, 'Invalid sTypeSort parameter
value
passed to proc_getAncestors');
end case;
if sFilter = 'ALL' then
sTail := sSortExpression;
else
sTail := ' and (1=0 ';
if instr(sFilter, 'SECTION') > 0 then
sTail := sTail || ' or obt_type = ''SECTION''';
end if;
if instr(sFilter, 'PAGE') > 0 then
sTail := sTail || ' or obt_type = ''PAGE''';
end if;
if instr(sFilter, 'FILE') > 0 then
sTail := sTail || ' or obt_type = ''FILE''';
end if;
if instr(sFilter, 'LINK') > 0 then
sTail := sTail || ' or obt_type = ''LINK''';
end if;
sTail := sTail || ') ' || sSortExpression;
end if; /* designed to fail if it's not one of ALL, SECTION,
PAGE, FILE,
LINK */
case sDetail
when 'TRUE' then
/* get this node */
select obt_left, obt_right
into rSelf
from VW_OBJTREE
where obt_uuid = uNode;
/* get ancestors */
sSQl := 'select * from VW_OBJTREE' || sWhere || sTail;
open qAncestors for sSql using rSelf.obt_left,
rSelf.obt_right;
when 'FALSE' then
/* get this node */
select obt_left, obt_right
into rSelf
from tbl_objtree
where obt_uuid = uNode;
sSQl := 'select * from tbl_objtree' || sWhere || sTail;
open qAncestors for sSql using rSelf.obt_left,
rSelf.obt_right;
else
raise_application_error(-20023, 'Invalid sDetail parameter
value passed
to proc_getAncestors');
end case;
exception
when no_data_found then /* this happens for some reason,
sometimes. Yet
to work out where/why */
null;
when others then
sErrMsg := SQLERRM;
raise_application_error(-20024, 'Unexpected error: ' ||
sErrMsg);
end;
{code}
Cheers Phil.
Adam
Similar Messages
-
I need to use a reserved word as parameter name in proc called from URL
Let me preface this post by saying I already know this is terrible to attempt, but it's short term fix only.
Ok, so I have to create a procedure that will be called by a vendors application via a API that calls our URL to send data over. The terrible part is
that the API they have uses the parameter FROM=vendor_data A change is on the way so in the future the API won't use FROM as a paramter, so this isn't something I want to do, but it's a workaround.
So the nastiness is this..., I can create a procedure that'll compile when I enclose FROM in double quotes "FROM" as my input parameter
but if I try to call my procedure via URL (as their application will do) the procedure isn't working. I searched for someway to do an inline
replace of the FROM parameter to something else, but no luck. I'm open to all positive comments. I cannot go outside of Oracle
to do this, so I can't call a shell script and replace. Basically I need some way to use a reserved word as a parameter name, and then be able to call
that proc from a URL, or someway to change the FROM in the URL inline. Any help on this admittedly whacky situation would be appreciated much.
I tried ...\myproc?from=text
...\myproc?"from"=text
...\myproc?'from'=text
proc is simple test procedure
create or replace procedure myproc
("from" in varchar2 default 0)
is
v_from varchar2(30);
begin
v_from:="FROM";
insert into test(col1) values(v_from);
end;
**** Update
I didn't get any more replies but came to a solution that I thought I'd post. It's much better, more elegant and maybe can help others.
So instead of using FROM as the parameter name I did some research and decided I can use flexible parameters. Basically you end up having
2 input parameters for a procedure, one holds a parameter name the other holds the parameter value. They get loaded into arrays
and you access the values with regular name_array(1), value_array(1), etc. ?v=parameter&v2=value
Once I figued I could use flexible parameter it took me tons of research to find out the actual syntax. I'll post some examples for others
later, but was suprised with the lack of resources consideriing how "flexible" they are.
Thanks again for the replies. Cheers.
Edited by: Mitz on Jul 29, 2009 11:37 PMScott,
Thanks for the reply. I'm not familiar with the wwv_flow_epg_include_mod_local, however I know that the
myproc is available via URL. I passed the my procedure name(myproc) on to the dba a while back to make it "accessible" so, I'm assuming that he
added it to this the www_flow_epg_mod_local (assuming this has something to do with access control).
If I modify myproc procedure and remove "FROM" as the input variable, and replace with say,
IN_FROM I can then call the procedure via the URL ./myproc?in_from=test without any problems.
I'm pretty confident that it's the "FROM" that is the hurdle and not a security or setup issue. The proc is fine to call from the URL until I got the curveball that the only available parameter was FROM. How the URL should be when inputing to that parameter?
Edited by: Mitz on Jul 25, 2009 7:36 PM
Edited by: Mitz on Jul 25, 2009 9:16 PM -
How Do You Debug Oracle Report Calls From Forms On The App Server?
I am working on a system which uses oracle forms and reports 10g.
In our system we call, we are calling oracle reports from oracle forms. How do we debug the form code when the form and report both are running on the application server in production.
To my knowledge, this can not be done when the form is running locally since there is only OC4J forms services locally.
I understand one views error messages through the jinitiator console but how does one turn on this facility? How do you determine what line the error occurred?
I am looking for step by step instructions as answer to this issue.
Please be specific. Please write in good English.Good afternoon,
If you have the developer suite installed on your PC, run the report from your form and then follow this tree from the start button on your PC:
Developer Suite Home =>
Reports Developer =>
Oracle Application Server Report Services =>
Reports Queue Manager
Select View => Past Jobs and then find your report in the list, double-click the report entry and you'll see the error message that was generated by the Report Server when you tried to run the report.
Good luck,
Don. -
Oracle Function call from JDBC Adapter
Hi,
Is it possible to call Custom Oracle Function from JDBC Adapter?
I know we can call stored procedure but I need to call Oracle function. Please explain how?
Regards,
Shweta.You'll need to provide a column alias for the function call:
select func(val) as alias from dual -
Oracle function call from XSQL
Hi, Steve,
We have trouble to make a function call in XSQL. Here is what we have.
Function:
create or replace function VerifyUser (valid in varchar2)
return varchar2
is
begin
return(valid);
end;
XSQL call:
<PAGE xmlns:xsql="urn:oracle-xsql" connection="demo" istrue="ISTRUE">
<xsql:query>
select VerifyUser('{@istrue}') from DUAL
</xsql:query>
</PAGE>
Error message returned:
<PAGE istrue="ISTRUE">
<ERROR>oracle.xml.sql.OracleXMLSQLException: Invalid character in name.</ERROR>
</PAGE>
Any idea what is wrong here?
What we want is to get the out variable value onto the XSQL page.
Thanks for help.
nullYou'll need to provide a column alias for the function call:
select func(val) as alias from dual -
SSIS Catalog views are not executing from PROC calling from a service broker
Hi Exprets,
I have a package deployed on SSISDB (the new concept in MS SQL 2012, SSIS catalogs). I have t-sql code in which i will be able to execute SSIS package in SSISDB with no problems. But if i place the same t-sql code inside of a procedure which will be called
by a service broker , the code is not executing.
I am using the following code to execute a package in the SSISDB catalog
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'LoadToABC.dtsx',
@execution_id=@execution_id OUTPUT, @folder_name=N'ABC', @project_name=N'LoadToABC',
@use32bitruntime=False, @reference_id=Null
DECLARE @var0 NVARCHAR(200)
= N'D:\MyData\SampleText20120830100001.txt'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=30,
@parameter_name=N'strFileName', @parameter_value=@var0
EXEC [SSISDB].[catalog].[start_execution] @execution_id
This code executes if run it alone or placed in a regular stored procedure , but not executes if i palce this same code inside of a procedure which is being called/executed by a service broker call like this:
CREATE QUEUE dbo.SampleQueue
WITH STATUS=ON, ACTIVATION
(STATUS = ON, MAX_QUEUE_READERS
= 1,
PROCEDURE_NAME = spMessageProcSample,
EXECUTE AS OWNER);
The problem occurs if we call the SSIS catalogs inside a proc which will be calling through a service broker queue.
I am running all these steps on my local instance of SQL SERVER 2012 in which i am the administrator.
Please advice where i am doing wrong ?
Thanks,
Jyodhu.Hi ArthurZ,
Thanks for reply. What i ment was i tried with all the "EXECUTE AS" options. but no luck.
Can you please explain step by step if you can ? That would be great help.
This is the error message from server log.
Message
The activated proc '[dbo].[spMessageProcSample]' running on queue 'FileTableDB.dbo.SampleQueue' output the following: 'The server principal "USA\cccsat1nmg" is not able to access the database "SSISDB" under the current security context.'
I logged in with WIndows authentication (Admin) and i created all the objects including Integration services Catalog.
Thanks,
Jyodhu. -
Oracle reports calling problem from FORMS
Hies
Guys I've a problem in oracle report calling from Oracle FORMS. I am using reports and forms 6i. When the report name length is more than 30 characters the report engine runs first time correctly but on the second call of report the system gives an error :
" RWRBE60.exe has generated errors and will be closed by windows.You will need to restart the program ".
After this error the report engine closes and i have to call the report again.
Is there a length fixed for reports name in Oracle 6i.
Is any possible solution available.
Remember i dont want to shorten my report names.
Kindly help me with this.
Thanx.Thanx Frank
Well one solution is that i can decrease the length of my report name and the problem does not occur than.
any ways thanx ..but where to get the patch from.
Kindly provide me with the link if possible.
Thanx,
Qaiser Qayyum Malik.
[email protected] -
Calling Oracle store procedure from Crystal 11 command
I need to call Oracle store procedure from Crystal Command. The Store proc has ref cursor. Is it possible. Can you post few examples?
Also, is it possible to have multiple sql statements in a Crystal Command, when working with Oracle 10g?
It is working for SQL server.Please re-post if this is still an issue to the Data Connectivity - Crystal Reports Forum or purchase a case and have a dedicated support engineer work with you directly.
-
Execute Oracle Package Function call from FORTE
Has anyone EVER successfully execute an Oracle Package Function call from FORTE
via " sql execute procedure "?
Here's my question, I am able to execute a stored procedure but hasn't figured
out a way to execute a function which defined in a package. The syntax goes
like this: sql execute procedure <PackageName>.<FunctionName> ( input
input_parm, output output_parm). If anyone EVER successfully execute a
function, please let me know, thanks.You'll need to provide a column alias for the function call:
select func(val) as alias from dual -
Calling Oracle Ebusiness Forms from a Webcenter Portal application
Hello All,
Would there be any known/standard procedure of calling Oracle EBusiness Forms from a Custom WebCenter Portal Application. The issue we are facing currently is that we are successfully able to call an Oracle EBS Forms as a GO Link from the application. The problem is when there are multiple links to open different EBS Forms. Multiple instances of the Forms sessions are created. We would like to have only one. We are trying to mimic the Oracle EBusiness Home Page / Landing Page.
Any pointers are much appreciated.
Thanks,
NachiHi.
Are you using Portal or Framework Portal?.
In case of <noscript> is generated by JAVA internal classes and the unique way to change the message is with a Non supported workaround overriding a CoreBundle class.
About the af:skipLinkTarget usually is in the Page Template. The default templates has it in next snippet:
<f:facet name="center">
<af:skipLinkTarget>
<af:facetref facetname="content">
</af:facetref>
</af:skipLinkTarget>
</f:facet>
If you're using default Templates then copy them and remove the af:skipLinkTarget tag from the copied one and assign it to the Portal.
I hope it helps.
Regards. -
Calling Oracle Discoverer Report from Apex
How to call Oracle Discoverer Report from apex application?
Thanks!The report is on a different data base ... need to create a process to get the data into the view behind the report and then materialized view in Apex etc .Then recreate the same report in Apex. But I am trying use the disc report url to invoke the report directly from apex.
Any suggestions or thoughts are greatly aprreciated. -
Error Message from Oracle server while a procedure calling from VB
hi,
when i am calling a procedure some time an error is comming and most of the times the program is working properly. the error showing is as folows
ORA-06550: line 1, column 7:
PLS-00306: wrong number of type of arguments in call to 'PRO_PandL_Exp1'
ORA-06550: line 1, column 7:
PL/SQL:Statement Ignored
i am expressing my extreem thanks for trying to help me and solve the problam
the procedure i written is
CREATE OR REPLACE PROCEDURE PRO_PANDL_EXP1
(companyid in number, Stdate in varchar2, enddate in varchar2, YEARID in number, p_recordset OUT SYS_REFCURSOR ) AS
sdate date;
edate date;
begin
sdate := to_date(Stdate,'dd-mon-yyyy');
edate := to_date(enddate,'dd-mon-yyyy');
open p_recordset for select NVL(sum(dr),0) AS DR , NVL(sum(cr),0) AS CR , NVL(sum(opamt),0) AS OPAMT,
NVL(sum(balamt),0) AS BALAMT, group_name, ORDER_TO_PRINT, GROUP_LEVEL,
TR_PL_BS_FLAG, ag.GROUP_ID, head_status as Head_id, Head_name,
nvl(Details.GROUP_NATURE, ag.group_nature) as GROUP_NATURE,
nvl(Details.parent_id1, ag.parent_id1) as Parent_id1
from (
(SELECT SUM(nvl(MONTHBALANCEAMTDR, 0)) AS DR,
SUM(nvl(MONTHBALANCEAMTCR, 0)) AS CR,
SUM(nvl(OPBALANCEAMT, 0)) AS OPAMT, SUM(nvl(balance,
0)) AS balAmt, group_id, DTL.head_id,
DTL.head_status, DTL.head_name,
DTL.GROUP_NATURE, parent_id1
FROM ( SELECT SUM(nvl(MONTHBALANCEAMTDR, 0))
AS MONTHBALANCEAMTDR,
SUM(nvl(MONTHBALANCEAMTCR, 0))
AS MONTHBALANCEAMTCR, SUM(nvl(OPBALANCEAMT,
0)) AS OPBALANCEAMT, SUM(nvl(balance, 0))
AS balance, groupdetails.group_name,
groupdetails.group_id AS group_id,
groupdetails.head_id AS head_id,
GROUPDETAILS.HEAD_NAME,
groupdetails.head_status, PARENT_ID1,
ORDER_TO_PRINT, GROUP_NATURE
FROM (SELECT SUM(NVL(MONTHBALANCEAMTDR, 0)) AS MONTHBALANCEAMTDR,
SUM(NVL(MONTHBALANCEAMTCR, 0)) AS MONTHBALANCEAMTCR, head_id, HEAD_NAME,
group_ID, COMPANY_ID FROM (SELECT SUM(DECODE(DRCR, 0, (AMOUNT_IN_AED+nvl(CON_RATE_DIFF,0)),
0)) AS MONTHBALANCEAMTDR,
SUM(DECODE(DRCR, 1, (AMOUNT_IN_AED+nvl(CON_RATE_DIFF,0)), 0))
AS MONTHBALANCEAMTCR, AH.head_id,
AH.HEAD_NAME, AH.group_ID,
AH.COMPANY_ID
FROM federal.TRANS_DETAILS TD,
federal.account_heads AH
WHERE VOUCHER_DATE <= edate AND
VOUCHER_DATE >= sdate AND
AH.COMPANY_ID = TD.COMPANY_ID AND
AH.head_id = TD.head_iD AND
ah.company_id = companyid
GROUP BY DRCR, AH.group_id, AH.head_id,
AH.COMPANY_ID, AH.HEAD_NAME)
GROUP BY group_id, head_id, COMPANY_ID, HEAD_NAME )
transdetails,
(SELECT SUM(nvl((AMOUNT_IN_AED+nvl(CON_RATE_DIFF,0)), 0))
AS OPBALANCEAMT, AH.head_id,
AH.HEAD_NAME, AH.group_ID,
AH.COMPANY_ID
FROM federal.TRANS_DETAILS TD,
federal.account_heads AH
WHERE VOUCHER_DATE < sdate AND
AH.COMPANY_ID = TD.COMPANY_ID AND
AH.head_id = TD.head_iD AND
ah.company_id = companyid
GROUP BY AH.group_id, AH.head_id,
AH.COMPANY_ID, AH.HEAD_NAME)
OPENINGDETAILS,
( SELECT ah.head_id, DECODE(group_level, 1,
ah.head_id, 0) AS head_status,
0 AS BALANCE, accountgroup.company_id, accountgroup.group_id, parent_id2,
group_name, DECODE(group_level, 1, ah.head_name, ' ') AS head_name, ORDER_TO_PRINT,
GROUP_NATURE, parent_id1
FROM FEDERAL.account_heads AH,
(SELECT group_id, group_name, group_level, company_id, parent_id2, parent_id1,
ORDER_TO_PRINT, GROUP_NATURE
FROM FEDERAL.account_groups AG
WHERE AG.company_id = companyid and (GROUP_NATURE='I' or GROUP_NATURE='E' or GROUP_NATURE='P') )
accountgroup
WHERE AH.group_id = accountgroup.group_id AND
AH.company_id = accountgroup.company_id AND
AH.company_id = companyid) groupdetails
WHERE transdetails.head_id (+) = groupdetails.head_id AND
transdetails.company_id (+) = groupdetails.company_id AND
OPENINGdetails.head_id (+) = GROUPDETAILS.head_id AND
OPENINGdetails.company_id (+) = GROUPDETAILS.company_id
GROUP BY groupdetails.group_name, head_status,
groupdetails.group_id, groupdetails.head_id,
GROUPDETAILS.HEAD_NAME,
GROUPDETAILS.group_id, PARENT_ID2, head_status,
ORDER_TO_PRINT, GROUP_NATURE, parent_id1) DTL
GROUP BY group_id, DTL.head_id, DTL.head_name,
DTL.head_status, DTL.GROUP_NATURE, parent_id1)
UNION ALL
(SELECT DISTINCT
0, 0, 0, 0, accountgroup.group_id, 0 AS head_id,
0 AS head_status, ' ' AS head_name, GROUP_NATURE, parent_id1
FROM FEDERAL.account_heads AH,
(SELECT group_id, group_name, group_level, company_id,
parent_id1, ORDER_TO_PRINT, GROUP_NATURE
FROM FEDERAL.account_groups AG
WHERE AG.company_id = companyid and group_level<=2 and (GROUP_NATURE='I' or GROUP_NATURE='E' or GROUP_NATURE='P') ) accountgroup
WHERE AH.group_id = accountgroup.group_id AND
AH.company_id = accountgroup.company_id AND
AH.company_id = companyid AND
accountgroup.group_id = ah.group_id ) ) Details,
account_groups AG where Details.group_id (+) = AG.Group_id and AG.GROUP_LEVEL <=2 AND
ag.company_id = companyid group by
group_name, ORDER_TO_PRINT, GROUP_LEVEL, TR_PL_BS_FLAG, ag.GROUP_ID,
head_status, Head_name, Details.GROUP_NATURE, Details.parent_id1 , ag.GROUP_NATURE, ag.parent_id2, ag.parent_id1
order by parent_id1, GROUP_ID, ORDER_TO_PRINT, head_status, head_name ;
end pro_pandl_Exp1;
Thank you
Bosemonprakash wrote:
Hi all,
DECLARE
l_conn UTL_TCP.connection;
BEGIN
l_conn := ftp.login('Destination Ip address ', '22', 'Username', 'Password');
ftp.ascii(p_conn => l_conn);
ftp.put(p_conn => l_conn,
p_from_dir => 'MID5010_DOC1TEMP', -- Oracle Directory name from where we need to copy a file
p_from_file => 'Hipaa.33KM.5093.06152011130146885.834.O.irl',
p_to_file => '/qatest1/mihipaa5010/mj5010/DevelopmentStage/working_directory/Outbound/Data/75061252/Hipaa.00AN.07262011173844778.820.O.copied.irl'); -- Directory of the destination machine where we need to paste
ftp.logout(l_conn);
exception
when others then
dbms_output.put_line(sqlcode || sqlerrm);
--dbms_output.put_line(l_conn);
END;We are getting the below error:
SSH-1.99-OpenSSH_5.1
-29260ORA-29260: network error: TNS:connection closed
Could any one please let us know why this error is raising...As sybrand correctly points out, this issue doesn't belong here.
You are using a 3rd party package "ftp" and the error it is indicating suggests the issue is a network issue of some sort.
We don't have the code of that package or know what it is doing, so please consult whoever supplied or wrote the package and/or your network administrators. -
When making an outgoing call from my i phone, an icon of a microphone with a slash across appears. I can hear the recipient speakin but he cannot hear me. What has been turnedd off, and how do I turn it on?
I think mute is on, tap the microphone icon with the slash running through it
-
Java function call from Trigger in Oracle
Moderator edit:
This post was branched from an eleven-year-old long dead thread
Java function call from Trigger in Oracle
@ user 861498,
For the future, if a forum discussion is more than (let's say) a month old, NEVER resurrect it to append your new issue. Always start a new thread. Feel free to include a link to that old discussion if you think it might be relevant.
Also, ALWAYS use code tags as is described in the forum FAQ that is linked at the upper corner of e\very page. Your formulae will be so very much more readable.
{end of edit, what follows is their posting}
I am attempting to do a similar function, however everything is loaded, written, compiled and resolved correct, however, nothing is happening. No errors or anything. Would I have a permission issue or something?
My code is the following, (the last four lines of java code is meant to do activate a particular badge which will later be dynamic)
Trigger:
CREATE OR REPLACE PROCEDURE java_contact_t4 (member_id_in NUMBER)
IS LANGUAGE JAVA
NAME 'ThrowAnError.contactTrigger(java.lang.Integer)';
Java:
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "ThrowAnError" AS
// Required class libraries.
import java.sql.*;
import oracle.jdbc.driver.*;
import com.ekahau.common.sdk.*;
import com.ekahau.engine.sdk.*;
// Define class.
public class ThrowAnError {
// Connect and verify new insert would be a duplicate.
public static void contactTrigger(Integer memberID) throws Exception {
String badgeId;
// Create a Java 5 and Oracle 11g connection.
Connection conn = DriverManager.getConnection("jdbc:default:connection:");
// Create a prepared statement that accepts binding a number.
PreparedStatement ps = conn.prepareStatement("SELECT \"Note\" " +
"FROM Users " +
"WHERE \"User\" = ? ");
// Bind the local variable to the statement placeholder.
ps.setInt(1, memberID);
// Execute query and check if there is a second value.
ResultSet rs = ps.executeQuery();
while (rs.next()) {
badgeId = rs.getString("Note");
// Clean up resources.
rs.close();
ps.close();
conn.close();
// davids badge is 105463705637
EConnection mEngineConnection = new econnection("10.25.10.5",8550);
mEngineConnection.setUserCredentials("choff", "badge00");
mEngineConnection.call("/epe/cfg/tagcommandadd?tagid=105463705637&cmd=mmt%203");
mEngineConnection.call("/epe/msg/tagsendmsg?tagid=105463705637&messagetype=instant&message=Hello%20World%20from%20Axium-Oracle");
Edited by: rukbat on May 31, 2011 1:12 PMTo followup on the posting:
Okay, being a oracle noob, I didn't know I needed to tell anything to get the java error messages out to the console
Having figured that out on my own, I minified my code to just run the one line of code:
// Required class libraries.
import java.sql.*;
import oracle.jdbc.driver.*;
import com.ekahau.common.sdk.*;
import com.ekahau.engine.sdk.*;
// Define class.
public class ThrowAnError {
public static void testEkahau(Integer memberID) throws Exception {
try {
EConnection mEngineConnection = new EConnection("10.25.10.5",8550);
} catch (Throwable e) {
System.out.println("got an error");
e.printStackTrace();
}So, after the following:
SQL> {as sysdba on another command prompt} exec dbms_java.grant_permission('AXIUM',"SYS:java.util.PropertyPermission','javax.security.auth.usersubjectCredsOnly','write');
and the following as the user
SQL> set serveroutput on
SQL> exec dbms_java.set_output(10000);
I run the procedure and receive the following message.
SQL> call java_contact_t4(801);
got an error
java.lang.NoClassDefFoundError
at ThrowAnError.testEkahau(ThrowAnError:13)
Call completed.
NoClassDefFoundError tells me that it can't find the jar file to run my call to EConnection.
Now, I've notice when I loaded the sdk jar file, it skipped some classes it contained:
c:\Users\me\Documents>loadjava -r -f -v -r "axium/-----@axaxiumtrain" ekahau-engine-sdk.jar
arguments: '-u' 'axium/***@axaxiumtrain' '-r' '-f' '-v' 'ekahau-engine-sdk.jar'
creating : resource META-INF/MANIFEST.MF
loading : resource META-INF/MANIFEST.MF
creating : class com/ekahau/common/sdk/EConnection
loading : class com/ekahau/common/sdk/EConnection
creating : class com/ekahau/common/sdk/EErrorCodes
loading : class com/ekahau/common/sdk/EErrorCodes
skipping : resource META-INF/MANIFEST.MF
resolving: class com/ekahau/common/sdk/EConnection
skipping : class com/ekahau/common/sdk/EErrorCodes
skipping : class com/ekahau/common/sdk/EException
skipping : class com/ekahau/common/sdk/EMsg$EMSGIterator
skipping : class com/ekahau/common/sdk/EMsg
skipping : class com/ekahau/common/sdk/EMsgEncoder
skipping : class com/ekahau/common/sdk/EMsgKeyValueParser
skipping : class com/ekahau/common/sdk/EMsgProperty
resolving: class com/ekahau/engine/sdk/impl/LocationImpl
skipping : class com/ekahau/engine/sdk/status/IStatusListener
skipping : class com/ekahau/engine/sdk/status/StatusChangeEntry
Classes Loaded: 114
Resources Loaded: 1
Sources Loaded: 0
Published Interfaces: 0
Classes generated: 0
Classes skipped: 0
Synonyms Created: 0
Errors: 0
.... with no explanation.
Can anyone tell me why it would skip resolving a class? Especially after I use the -r flag to have loadjava resolve it upon loading.
How do i get it to resolve the entire jar file?
Edited by: themadprogrammer on Aug 5, 2011 7:15 AM
Edited by: themadprogrammer on Aug 5, 2011 7:21 AM
Edited by: themadprogrammer on Aug 5, 2011 7:22 AM
Edited by: themadprogrammer on Aug 5, 2011 7:23 AM
Edited by: themadprogrammer on Aug 5, 2011 7:26 AM -
Hi
While calling From Oracle Forms 11g patch set 2(11.1.1.3.0) to Oracle Reports 11g patch set 2(11.1.1.3.0) I found unable to run report error
But its finely working in 10g. The Place of error is in find_report_object
Is any solution to resolve this problem like any registry setting or patches to solve this problem
Please guide me
Regards
Murali N SI was able to download it from this link:
[http://download-llnw.oracle.com/otn/java/jdeveloper/11.1.1.3.0/jdevstudio11113install.exe]
on the general 11g Fusion download page at:
[http://www.oracle.com/technology/software/products/middleware/index.html]
Although the site does appear to be having problems. I got intermittent errors of the page/server not being available.
Maybe you are looking for
-
Music appears to be on ipod when viewing in iTunes but isn't there
I have a new problem with my previously reliable iPods. When I connect them to my computer and either manually or automatically sync music to them, the sync appears to work fine, and I can click on a song and play it from iTunes. But when I disconnec
-
Error message unknown error 4280.... please help!!!!
When I try and burn a cd it starts and then stops and comings up with a unknown error message saying unknown error 4280...
-
IDOC status 64 not getting processed.
Hi Gurus, I have a problem where IDOC's with status 64 are not getting processed via background job. the IDOCs weere getting processed with the background job till today evening, but suddenly no changes were made and the processing of IDOC's wi
-
Should there be a difference between javascript in HTML Header vs js file?
Application Express 3.2.1.00.10 I'm finding that IE shows javascript errors when I refer to functions contained in a js file (uploaded as static file) referenced in the HTML Header versus copying the exact same code and keeping it in HTML Header. I c
-
Obtaining the WSDL and sending a message (like Web Services)
Hi All, Is it possible to use a service interface defined in XI as any other web service? Consider the following scenario. 1. Create an async service interface (outbound) in XI (This has a message mapping and the message goes to some inbound interfac