SLDCHECH: Function call returned exception code 3

Hi all.
I am trying to set up ESS and MSS on EP 6.0 SP15.
I have configured the RFC destination, and when i do a test in RZ70 and SM59 everything is ok, but when i try running transaction SLDCHECK i get the following error:
Use transaction SLDAPICUST if you wish to maintain the SLD server access data
Launching the SLD GUI in a separate browser window...
=> Verify in the browser GUI that the SLD is in a healthy running state!
Calling function LCR_LIST_BUSINESS_SYSTEMS
Retrieving data from the SLD server...
Function call returned exception code     3
=> Check whether the SLD is running!
Summary: Connection to SLD does not work
=> Check SLD function and configurations
Can anybody shead some light on this problem?
Regards Liselotte

Dear Liselotte,
This will help you,
http://help.sap.com/saphelp_nw04/helpdata/en/78/20244134a56532e10000000a1550b0/frameset.htm
Might be Java version to the proxy settings. Try to go thru listed down various troubleshooting steps in following this weblog.
Unable to open IR/ESR/ID ? (XI/PI/PI 7.1) [Updated for PI 7.1 support]
Regards
Agasthuri Doss

Similar Messages

  • UDPWrite in a loop. "A Windows Sockets function call returned an unexpected error."

    Hello together,
    i use UDP Support Library in NI CVI 9.0. When i wait for receiving a packet at the pc to send then a packet from the pc, the functions UDPRead and UDPWrite work fine. If i want to test the maximum throughput, i put the UDPWrite in a loop, but then an error occurs. It is "kUDP_UnexpectedWinsockError"
    Error Popup:
    "NON-FATAL RUN-TIME ERROR:   "main.c", line 53, col 22, thread id
    0x00000C18:   Library function error (return value == -6822
    [0xffffe55a]). A Windows Sockets function call returned an unexpected
    error."
    Line 53:
    status = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458);
    the whole loop:
    while(1)
    status = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458);
    counter++;
    if(counter>50)
    break;
    else{;}
    The error occurs after 3-16 packets have been sent. If i step through the programm, no error occurs. So i guess its because the UDPWrite command is invoked too fast. pOutputBuffer has static data. I could use a delay in the loop, but then i dont know how to configure for maximal throughput.
    Any ideas how to avoid this error?
    Regards Florian

    Hello and thank you for your answer. Sorry that i reply a month later.
    I dont know what you mean by "let 'er rip approach". Do you mean something like:
    status = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458);
    if(status==0)
     counter++;
    else
      Delay(0.00005);
    I did not yet try to put the packet number in the payload, but there is just a 30 cm crossover cable between the two devices, no switch, no router. So the sequence should not be interruptet. And even if they arrive in chaos, i dont mind.
    I have contacted the NI support 2 weeks ago, but no response yet.
    I did some tests with a delay between the execution of UDPWrite(). The code:
    float time = 0.0;
     for(i = 1; i < 1000; i++)
      status = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458);
      time = 1.0 / i;
      Delay(time);
    The results:
    For i between 1 and 1000: no error, the speed of the last ten packets was about 6.5 MBit/s
    For i between 1000 and 2000: error occured at i = 1585 (variable time in Delay was 0.0006313), the speed of the last ten packets was about 8 MBit/s
    Then i put some constant values in Delay and ran 100 UDPWrite iterations:
    Delay(0.0006): 7.48 MBit/s
    Delay(0.0001): 10.7 MBit/s
    Delay(0.00001): error occured at i=31, speed of 31 packets was 12.0 MBit/s
    Delay(0.00008): 100 of 100 packets, speed 10.9 MBit/s
    Delay(0.00005): error at i=41, speed of 41 packets 11.1 MBit/s

  • Function call returned in ref cursor

    We have a ref cursor that calls a function in a package. When ODP.NET reads the cursor, it can't see what the function is returning. OO4O works fine, and if I take the sql that populates the ref cursor and put it into a temporary table, then select from that temporary table to return the ref cursor to ODP, it works fine. Anyone else seen this issue? Any help would be appreciated. Thanks.
    Eric Schrauth
    [email protected]

    Did you set the parameter direction to be ParameterDirection.Input when you created the parameter? Post your code.

  • Function Call returning old SQL Query

    Hello All,
    I have a Pipeline Function which creates a SQL within (Dynamic SQL that gets stored in a LONG variable) based on the parameter STRING passed to the function. Inside this function, once the SQL is built, I am inserting this SQL into a log table, for logging purpose.
    Note: my function has only one parameter which is a string. This string accepts a name:value pairs with a delimiter which I breakdown inside the function. But this functionality is working fine.
    Issue:
    When I run the function with parameter with a STRING say (Age = 20, Gender = M) for the first time, it works.
    <code>SELECT * FROM TABLE (
    PIPE_FUN_SEARCH_PKG.get_search_records ('EMP_AGE:20|EMP_GENDER:M'));
    </code>
    When I change the parameters to (Age = 20, Gender = F), it gives me the results of the earlier function call.
    <code>SELECT * FROM TABLE (
    PIPE_FUN_SEARCH_PKG.get_search_records ('EMP_AGE:20|EMP_GENDER:F'));
    </code>
    When I open the logs, I see the SQL being built is the earlier one.
    As a test I closed the session and ran (Age = 20, Gender = F) first. It works fine. When I run a different parameter string, it always mimics the earlier function call.
    Is CACHING in play here. I tried both the following:
    <code> dbms_result_cache.bypass(FALSE);
    dbms_result_cache.flush;
    </code>
    I tried multiple tests, with different parameters and only the first one runs fine and second one copied the earlier. However, when I open two sessions on two different windows it doesn't happen.
    Also, in the Logging table I am capturing the input string as a confirmation, which is coming correctly. But the SQL being build mimics the earlier call.
    I tried to set the variable which hold the SQL Statement to empty (v_sql := '';) at the beginning and also at the end. Still no use.
    Kindly help if I am over looking anything.
    Regards,
    Aj

    Aj09 wrote:
    I have a Pipeline Function which creates a SQL within (Dynamic SQL that gets stored in a LONG variable) based on the parameter STRING passed to the function. The LONG data type has been replaced by the LOB data type. Oracle specifically recommends not using the old LONG data type.
    Issue:
    When I run the function with parameter with a STRING say (Age = 20, Gender = M) for the first time, it works.
    <code>SELECT * FROM TABLE (
    PIPE_FUN_SEARCH_PKG.get_search_records ('EMP_AGE:20|EMP_GENDER:M'));
    </code>
    When I change the parameters to (Age = 20, Gender = F), it gives me the results of the earlier function call.
    <code>SELECT * FROM TABLE (
    PIPE_FUN_SEARCH_PKG.get_search_records ('EMP_AGE:20|EMP_GENDER:F'));
    </code>The tag is ** - not *<code>*.
    Why a pipeline function? Why dynamic SQL? Are you using +DBMS_SQL+ to create the dynamic cursor? If not, why not? Only +DBMS_SQL+ allows dynamic binding in PL/SQL. Without that, your code will burn a lot of additional CPU on hard parsing and trash and fragment Shared Pool memory.
    When I open the logs, I see the SQL being built is the earlier one.
    How do you record the current SQL? Are you using a static variable to capture the SQL statement generated?
    From what you have described - this is yet another horribly flawed approach in all respects. To data modelling. To relational databases. To Oracle. To SQL.
    Reinventing the SQL language for data retrieval as a pipeline function using a funky parameter interface - sorry, I just don't get that. It is an insane approach.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Function calling the java code

    I have a java code that returns the size of the file name. I have created a pl/sql function that calls the method in the java class.
    The problem I face is , when I try to call the function using the command "CALL f_size('C:\Batch\Query.sql')into :leng " , the error comes reporting that
    "No method func in class fSize ".
    I have given both the java& pl/sql code. Can anyone help me out?
    import java.io.*;
    public class fSize {
    public static long func(String s)
    File file = new File(s);
    long length = file.length();
    return length;
    create or replace function f_size(path varchar2) return number
    as language java
    name 'fSize.func(String) return java.lang.Long';

    What version of the database are you runnning?
    If Oracle 9.2 or later, no need for java code. Use UTL_FILE.FGETATTR procedure.
    FGETATTR Procedure
    This procedure reads and returns the attributes of a disk file.
    Syntax
    UTL_FILE.FGETATTR(
       location    IN VARCHAR2,
       filename    IN VARCHAR2,
       exists      OUT BOOLEAN,
       file_length OUT NUMBER,
       blocksize   OUT NUMBER);
    Parameters
    Table 95-24 FGETATTR Procedure Parameters
    Parameters Description
    location
    Directory location of the source file, a DIRECTORY_NAME from the ALL_DIRECTORIES view (case sensitive)
    filename
    The name of the source file to be copied
    exists
    A BOOLEAN for whether or not the file exists
    file_length
    The length of the file in bytes. NULL if file does not exist.
    blocksize
    The file system block size in bytes. NULL if the file does not exist.
    SQL> create or replace and compile java source named "fSize" as
      2  import java.io.*;
      3  public class fSize {
      4      public static long func(java.lang.String s)
      5      {
      6          File file = new File(s);
      7          long length = file.length();
      8          return length;
      9      }
    10  };
    11  /
    Java created.
    SQL> show errors
    No errors.
    SQL> create or replace function f_size(path varchar2) return number
      2  as language java
      3  name 'fSize.func(java.lang.String) return java.lang.Long';
      4  /
    Function created.
    SQL>
    SQL> select f_size('C:\sqlnet.log') from dual ;
    F_SIZE('C:\SQLNET.LOG')
                        762
    1 row selected.
    SQL>
    SQL>
    SQL> disconnect
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.3.0 - Production
    SQL>

  • Function that return Company Code given an Org Unit ID

    Hi folks,
    As per subject, is there any such function?
    I seem unable to find. Straightforward way is just select bukrs from hrp1008 using the Org Unit OBJID. However, that table only stores direct assignment. I.e. many Org Unit actually have the company code inherited from parent OU. So if my OU doesn't have account assignment, must go to its parent OU to find, if parent OU doesn't have, again must go up and search. And so on..
    If there's already such function, I don't want to re-invent the wheel.
    Thanks!
    Regards,
    Olyvia

    I know it's an old topic, but the answer could be helpful for others:
    use RH_STRUC_GET as suggested, standard WEGID OMACC_U will return the objects maintained in 1008 (including BUKRS, WERKS, BTRTL).

  • Possible to have Function to return Flex Code (ie: mx:Text text="hello world"/ )???

    I'm new to Flex and need to special case some functionality
    using XML...not all feed items come with images so I thought the
    best way to handle this was to pass each feed item to a function
    that can use if statements and then return the appropriate code
    back to the user interface:
    For example printFeed() would would return something like the
    following if there were an image:
    <mx:Text text="{XML.channel.currentItem.title}"/>
    <mx:Image source="{XML.channel.currentItem.img.url}"/>
    OR the following if there were NOT an image:
    <mx:Text text="{XML.channel.currentItem.title}"/>
    Is this the correct approach? Also, what is the correct way
    to invoke printFeed? {printFeed("..."))} throws parsing errors.
    THANK YOU!
    -Cole

    "Cole_62" <[email protected]> wrote in
    message
    news:gd2q5r$f08$[email protected]..
    > no i dont think this will work because i need to iterate
    through each
    > <item> in
    > the XML...below is an exmaple of possible tree structure
    of the XML:
    > channel
    > -->item1
    > ----->title
    > ----->imgs
    > --------->imgUrl
    > --------->imgUrl
    > -->item2
    > ----->title
    > ----->imgs
    > ---------->imgUrl
    > -->item3
    > ------>title
    > ------>imgs
    > ----------->(no imgs)
    >
    > i thought to handle this using something like the
    ATTACHED CODE below:
    >
    > ...i need to be able to go through each <item> and
    <imgUrl> (because i
    > dont
    > know how many (if any) there are!) sorry if my PHP
    background shines
    > through!
    >
    > THANKS!
    >
    > <mx:Repeater id="feed"
    dataProvider="{XML.channel.item}">
    > <mx:HBox>
    > <mx:Text text="{feed.currentItem.title}"/>
    > <mx:Repeater id="item"
    dataProvider="{feed.currentItem.imgs}">
    > <!-- PSEUDO CODE I NEED HELP RESOLVING:
    > if ("{item.currentItem.imgURL}")
    > -->
    > <mx:Image source="{item.currentItem.imgUrl}"/>
    > </mx:Repeater>
    > </mx:HBox>
    > </mx:Repeater>
    How bout
    <mx:Repeater id="feed"
    dataProvider="{XML.channel.item}">
    <mx:HBox>
    <mx:Text text="{feed.currentItem.title}"/>
    <mx:Repeater id="item"
    dataProvider="{feed.currentItem.imgs}">
    <mx:Image
    source="{item.currentItem.imgURL.length()>0?item.currentItem.imgURL:null}"
    includeInLayout="{item.currentItem.imgURL.length()>0}"/>
    </mx:Repeater>
    </mx:HBox>
    </mx:Repeater>

  • I have an error( REP-53053: Bad arguments for function call) in this code?somebody pls tell..

    declare
    repname varchar2(50);
    repid REPORT_OBJECT;
    v_rep VARCHAR2(100);
    begin
    repid := find_report_object('MKTRCON03_SUM_WAG11');
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,BATCH);
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);      
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'spreadsheet');
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'P_CLIENT='||:block4.CLIENT_CODE||' '||'P_MONTHNM='||:block4.MONTH_NM);
    v_rep := RUN_REPORT_OBJECT(repid);
    WEB.SHOW_DOCUMENT('http://iterp1:8889/reports/rwservlet/getjobid'||substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=rep_iterp1','_blank');
    end;

    What is the prototype of the function you're calling?
    void  Norm(uint8_t *Image, uint32_t width, uint32_t height, uint32_t Nx, uint32_t Ny, double *Norm);
    What does your LabVIEW code look like?
    Files attached. It simply reads in an image and calls the C library. This vi executes with a test-dummy dll that accepts the same inputs, and outputs a direct copy of the image; therefore, I can assume that the vi is fine and my inputs match the correct types.
    Are you using arrays? Is the DLL assuming that the caller allocates memory?
    Yes. I initialize two arrays in the calling vi and pass the pointer into the dll. Inside the dll, I dynamically allocate 2 arrays and deallocate them at the end of the function.
    I am sure that the arrays are initialized correctly in the code and the correct value and type are passed into the dll. I made sure of this by commenting out the real code, and writing a simple function to copy the original array into the the resulting array. The results were favorable and the array was successfully copied in the dll and the vi finished without errors, and with correct copied values in the resulting array.
    Is the DLL allocating memory for things like arrays that doesn't get released?
    Yes, I dynamically allocate arrays that are used inside the dll only. These do not get used by my calling vi, and as far as I know, they are effectively deallocated at the end of the function.
    Are you using the correct calling convention? 
    My dll is a .cpp file, but it is written as a C-callable function.
    Message Edited by Candice on 08-11-2009 09:52 AM
    Attachments:
    test driver for dll 2.1.vi ‏50 KB
    Pad an Image with Zeros subvi.vi ‏50 KB

  • Application call to ODBC SQLSetEnvAttr function throw HY011 exception

    Hi All,
          I try to use odbc driver manager in my .Net Application.first My .Net runtime is 3.5, odbc function calls(unmanaged functions are  imported to .Net application by dllimport attribute)can work well.but when .Net runtime is upgraded
    to 4.0,SetEnvAttr function calls
    return SQL-ERROR and I call SQLGetDiagRec function  get this error information:Operation invalid at this time.sqlstate value is HY011.
    below is my code fragment:
    [DllImport("odbc32.dll")]
    extern static short SQLSetEnvAttr(
    IntPtr envHandle,
    ushort attribute,
    IntPtr attrValue,
    int stringLength);
    [DllImport("odbc32.dll")]
    extern static short SQLAllocHandle(
    ushort HandleType,
    int InputHandle,
    out IntPtr OutputHandle);
    try
    rc = SQLAllocHandle(SQL_HANDLE_ENV, 0, out sql_env_handle);
    if ((rc != SQL_SUCCESS) && (rc != SQL_SUCCESS_WITH_INFO))
    throw new Exception("SQLAllocHandle: failed to allocate SQL_HANDLE_ENV");
    rc = SQLSetEnvAttr(sql_env_handle, SQL_ATTR_ODBC_VERSION, (IntPtr)SQL_OV_ODBC3, 0);
    //if ((rc != SQL_SUCCESS) && (rc != SQL_SUCCESS_WITH_INFO))
    // throw new Exception("SQLSetEnvAttr: failed to set SQL_ATTR_ODBC_VERSION");
    if((rc == SQL_SUCCESS_WITH_INFO)||(rc == SQL_ERROR))
    short i=1;
    short rc2;
    StringBuilder sqlstate=new StringBuilder();
    int NativeErrorPtr=0;
    StringBuilder MessageText=new StringBuilder();
    short BufferLength=256;
    short TextLengthPtr=0;
    while ((rc2 = SQLGetDiagRec((short)SQL_HANDLE_ENV,sql_env_handle,i,sqlstate,
    ref NativeErrorPtr,MessageText,BufferLength,ref TextLengthPtr))!= SQL_NO_DATA)
    i++;
    my operation system is win7 64bit. Could someone help me? thanks

    I already fixed this problem.
    [DllImport("odbc32.dll")]
    extern static short SQLAllocHandle(
    long HandleType,
    int InputHandle,
    out IntPtr OutputHandle);
    I replace ushort datatype with long datatype.So it works well

  • CATCHABLE EXCEPTIONS in the remote function call (RFC)

    Please tell me what are the CATCHABLE EXCEPTIONS in the remote function call (RFC) and to which exception class do they belong????
    Thanks in advance.
    Dinesh Dhiman

    HI,
    With external function calls, the EXCEPTIONS addition of the CALL FUNCTION command can be used to assign return values to the exceptions defined in the interface of the called function module. Class-based exceptions cannot be propagated to the caller from a remotely-called function module, and have the effect of an exception that cannot be handled.
    As well as the exceptions defined in the interface of the called function module, an external function call can also have the following predefined exceptions:
    The <b>SYSTEM_FAILURE</b> exception is the response to a runtime error that occurs when the remotely-called function module is executed.
    The <b>COMMUNICATION_FA</b>ILURE exception occurs when the connection to the partner system cannot be established or if the connection is lost during communication.
    Note
    We strongly recommend that you assign a return value to both these exceptions for every RFC, and that you handle this return value, as otherwise a runtime error will occur in the exception situations in question.
    Regards,
    Sesh

  • Return Reason codes/ Reversal Reason Code

    Good Morning SAP Gurus',
    I want to configure reason codes when handling return checks (NSF's).  I don't know which node I should or shouldn't use in this case.  I have something called Return Reason Codes and Define Reasons for Reversals. 
    I believe the typical method in handling NSF or return checks is FBRA and assign a reason code but I would also like to somehow systemically add a return fee to the customer account. 
    I don't recall where or how that was done.
    Any insight?
    POINTS AWARDED.
    Thanks!

    Where will you want to put the return reason code ? is it a global code for a return document or detail code ? I mean store in the row detail.
    I suggest to create it in the row line. you can use available one or create a UDF. If you want to use it a mandatory, just develop store procedure or set it as mandatory.
    Rgds,

  • Getting Return values from RFC function call with visual basic

    Hi,
    I am creating a sample app to connect to a SAP system which call its RFC functions created with ABAP. It was known that the function will return more than 1 return values.
       SAP Function name ==> "ZFMTP_RFC_GET_RESULT"
            Export parameters (to SAP):
                    - Student Name [char 10]         ==> "STUNAME"
                    - Student ID         [char 20]        ==> "STUID"
           Return values (From SAP):
                    - Results [char 10]        ==> "RESULT"
                    - Remarks [char 200]        ==> "REMARKS"
    i have managed to get sample codes for connecting and call a RFC function with vb but they only get a return value. How do i retrieve multiple return values like the above function "RESULT" and "REMARKS"?
    Here's my vb code to accessing the function
            Dim R3 As Object
            Dim FBFunc As Object
            Dim returnFunc As Boolean
            Dim connected As Boolean
            R3 = CreateObject("SAP.Functions")
            R3.Connection.Client = "000"
            R3.Connection.User = "BCUSER"
            R3.Connection.Password = "minisap"
            R3.Connection.Language = "DE"
            R3.Connection.System = "dtsystem"
            R3.Connection.Applicationserver = "xxx.xxx.xxx.xxx" 
            connected = R3.Connection.Logon(0, True)
            If connected <> True Then
                MsgBox("Unable to connect to SAP")
            End If
            FBFunc = R3.add("ZFMTP_RFC_GET_RESULT")
            FBFunc.exports("STUNAME") = "Jonny"
            FBFunc.exports("STUID") = "12345"
            returnFunc = FBFunc.Call() <<== How do i get the return value? or RESULT and REMARKS of the RFC Function?
    thanks alot.
    Edited by: Eugene Tan on Mar 4, 2008 7:17 AM

    Hi Gregor,
    Thanks for the link....i am having some doubts with the codes, hope you can clarify them for me if you know the codes..
    Below is the code snippet.
    Set impReturn = CHPASS_FN.Imports("RETURN")  <<=== is RETURN the standard keyword to get a                                                                                return object?
      expPassword.Value = currpass
      expNewPass.Value = newpass
      expFillRet.Value = "1"
    ''' Call change password function
      If CHPASS_FN.Call = True Then
        outFile.Write (", Called Function")
        Message = impReturn("MESSAGE") <<==== So if i have 3 return values..i just replace with the return                                                               value variable names?
        outFile.WriteLine " : " & Message
      Else
        outFile.Write (", Call to function failed")
      End If
    thanks alot...all your help is very appreciated.

  • SOLVED: How can I use or call a function that returns %ROWTYPE?

    Hi
    edit: you can probably skip all this guff and go straight to the bottom...In the end this is probably just a question of how to use a function that returns a %rowtype.  Thanks.
    Currently reading Feuerstein's tome, 5th ed. I've downloaded and run the file genaa.sp, which is a code generator. Specifically, you feed it a table name and it generates code (package header and package body) that will create a cache of the specified table's contents.
    So, I ran:
    HR@XE> @"C:\Documents and Settings\Jason\My Documents\Work\SQL\OPP5.WEB.CODE\OPP5.WEB.CODE\genaa.sp"
    749  /
    Procedure created.
    HR@XE> exec genaa('EMPLOYEES');which generated a nice bunch of code, viz:
    create or replace package EMPLOYEES_cache is
        function onerow ( EMPLOYEE_ID_in IN HR.EMPLOYEES.EMPLOYEE_ID%TYPE) return HR.EMPLOYEES%ROWTYPE;
        function onerow_by_EMP_EMAIL_UK (EMAIL_in IN HR.EMPLOYEES.EMAIL%TYPE) return HR.EMPLOYEES%ROWTYPE;
        procedure test;
    end EMPLOYEES_cache;
    create or replace package body EMPLOYEES_cache is
        TYPE EMPLOYEES_aat IS TABLE OF HR.EMPLOYEES%ROWTYPE INDEX BY PLS_INTEGER;
        EMP_EMP_ID_PK_aa EMPLOYEES_aat;
        TYPE EMP_EMAIL_UK_aat IS TABLE OF HR.EMPLOYEES.EMPLOYEE_ID%TYPE INDEX BY HR.EMPLOYEES.EMAIL%TYPE;
        EMP_EMAIL_UK_aa EMP_EMAIL_UK_aat;
        function onerow ( EMPLOYEE_ID_in IN HR.EMPLOYEES.EMPLOYEE_ID%TYPE)
            return HR.EMPLOYEES%ROWTYPE is
            begin
                return EMP_EMP_ID_PK_aa (EMPLOYEE_ID_in);
            end;
        function onerow_by_EMP_EMAIL_UK (EMAIL_in IN HR.EMPLOYEES.EMAIL%TYPE)
            return HR.EMPLOYEES%ROWTYPE is
            begin
                return EMP_EMP_ID_PK_aa (EMP_EMAIL_UK_aa (EMAIL_in));
            end;
        procedure load_arrays is
            begin
                FOR rec IN (SELECT * FROM HR.EMPLOYEES)
                LOOP
                    EMP_EMP_ID_PK_aa(rec.EMPLOYEE_ID) := rec;
                    EMP_EMAIL_UK_aa(rec.EMAIL) := rec.EMPLOYEE_ID;
                end loop;
            END load_arrays;
        procedure test is
            pky_rec HR.EMPLOYEES%ROWTYPE;
            EMP_EMAIL_UK_aa_rec HR.EMPLOYEES%ROWTYPE;
            begin
                for rec in (select * from HR.EMPLOYEES) loop
                    pky_rec := onerow (rec.EMPLOYEE_ID);
                    EMP_EMAIL_UK_aa_rec := onerow_by_EMP_EMAIL_UK (rec.EMAIL);
                    if rec.EMPLOYEE_ID = EMP_EMAIL_UK_aa_rec.EMPLOYEE_ID then
                        dbms_output.put_line ('EMP_EMAIL_UK  lookup OK');
                    else
                        dbms_output.put_line ('EMP_EMAIL_UK  lookup NOT OK');
                    end if;
                end loop;
            end test;
        BEGIN
            load_arrays;
        end EMPLOYEES_cache;
    /which I have run successfully:
    HR@XE> @"C:\Documents and Settings\Jason\My Documents\Work\SQL\EMPLOYEES_CACHE.sql"
    Package created.
    Package body created.I am now trying to use the functionality within the package.
    I have figured out that the section
        BEGIN
            load_arrays;
        end EMPLOYEES_cache;
    /is the initialization section, and my understanding is that this is supposed to run when any of the package variables or functions are referenced. Is that correct?
    With that in mind, I'm trying to call the onerow() function, but it's not working:
    HR@XE> select onerow(100) from dual;
    select onerow(100) from dual
    ERROR at line 1:
    ORA-00904: "ONEROW": invalid identifier
    HR@XE> select employees_cache.onerow(100) from dual;
    select employees_cache.onerow(100) from dual
    ERROR at line 1:
    ORA-06553: PLS-801: internal error [55018]
    HR@XE> select table(employees_cache.onerow(100)) from dual;
    select table(employees_cache.onerow(100)) from dual
    ERROR at line 1:
    ORA-00936: missing expressionHe provides the code genaa.sp, and a very brief description of what it does, but doesn't tell us how to run the generated code!
    Now, I have just done some googling, and it seems that what I am trying to do isn't possible. Apparently %ROWTYPE is PL/SQL, and not understood by SQL, so you can't call onerow() from sql. Correct?
    So I try wrapping the call in an exec:
    HR@XE> exec select employees_cache.onerow(100) from dual;
    BEGIN select employees_cache.onerow(100) from dual; END;
    ERROR at line 1:
    ORA-06550: line 1, column 30:
    PLS-00382: expression is of wrong type
    ORA-06550: line 1, column 7:
    PLS-00428: an INTO clause is expected in this SELECT statement
    HR@XE> exec select table(employees_cache.onerow(100)) from dual;
    BEGIN select table(employees_cache.onerow(100)) from dual; END;
    ERROR at line 1:
    ORA-06550: line 1, column 14:
    PL/SQL: ORA-00936: missing expression
    ORA-06550: line 1, column 7:
    PL/SQL: SQL Statement ignored
    HR@XE> exec employees_cache.onerow(100)
    BEGIN employees_cache.onerow(100); END;
    ERROR at line 1:
    ORA-06550: line 1, column 7:
    PLS-00221: 'ONEROW' is not a procedure or is undefined
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignoredNo joy.
    Of course, now that I'm looking at it again, it seems that the way to go is indicated by the first error:
    PLS-00428: an INTO clause is expected in this SELECT statement
    So am I supposed to create a type of EMPLOYEES%ROWTYPE in a PL/SQL procedure, and the idea of this code, is that the first call to onerow() runs the initialiation code, which populates the cache, and all subsequent calls to onerow() (whether by my session or any other) will use the cache?
    I've had a stab at this, but still, no joy:
    create or replace procedure testcache is
        emp employees%rowtype;
        begin
            select employees_cache.onerow(100) from dual into emp;
            dbms_output.put_line('Emp id: ' || emp.employee_id);
        end testcache;
    show errors
    HR@XE> @testcache.sql
    Warning: Procedure created with compilation errors.
    Errors for PROCEDURE TESTCACHE:
    LINE/COL ERROR
    4/9      PL/SQL: SQL Statement ignored
    4/54     PL/SQL: ORA-00933: SQL command not properly ended
    HR@XE>Have a feeling this should be really easy. Can anybody help?
    Many thanks in advance.
    Jason
    Edited by: 942375 on 08-Feb-2013 11:45

    >
    Ha, figured it out
    >
    Hopefully you also figured out that the example is just that: a technical example of how to use certain Oracle functionality. Unfortunately it is also an example of what you should NOT do in an actual application.
    That code isn't scaleable, uses expensive PGA memory, has no limit on the amount of memory that might be used and, contrary to your belief will result in EVERY SESSION HAVING ITS OWN CACHE of exactly the same data if the session even touches that package.
    Mr. Feuerstein is an expert in SQL and PL/SQL and his books cover virtually all of the functionality available. He also does an excellent job of providing examples to illustrate how that functionality can be combined and used. But the bulk of those examples are intended solely to illustrate the 'technical' aspects of the technology. They do not necessarily reflect best practices and they often do not address performance or other issues that need to be considered when actually using those techniques in a particular application. The examples show WHAT can be done but not necessarily WHEN or even IF a given technique should be used.
    It is up to the reader to learn the advantages and disadvantages of each technicalogical piece and determine when and how to use them.
    >
    Now, I have just done some googling, and it seems that what I am trying to do isn't possible. Apparently %ROWTYPE is PL/SQL, and not understood by SQL, so you can't call onerow() from sql. Correct?
    >
    That is correct. To be used by SQL you would need to create SQL types using the CREATE TYPE syntax. Currently that syntax does not support anything similar to %ROWTYPE.
    >
    So am I supposed to create a type of EMPLOYEES%ROWTYPE in a PL/SQL procedure, and the idea of this code, is that the first call to onerow() runs the initialiation code, which populates the cache, and all subsequent calls to onerow() (whether by my session or any other) will use the cache?
    >
    NO! That is a common misconception. Each session has its own set of package variables. Any session that touches that package will cause the entire EMPLOYEES table to be queried and stored in a new associative array specifically for that session.
    That duplicates the cache for each session using the package. So while there might be some marginal benefit for a single session to cache data like that the benefit usually disappears if multiple sessions are involved.
    The main use case that I am aware of where such caching has benefit is during ETL processing of staged data when the processing of each record is too complex to be done in SQL and the records need to be BULK loaded and the data manipulated in a loop. Then using an associative array as a lookup table to quickly get a small amount of data can be effective. And if the ETL procedure is being processed in parallel (meaning different sessions) then for a small lookup array the additional memory use is tolerable.
    Mitigating against that is the fact that:
    1. Such frequently used data that you might store in the array is likely to be cached by Oracle in the buffer cache anyway
    2. Newer versions of Oracle now have more than one cache
    3. The SQL query needed to get the data from the table will use a bind variable that eliminates repeated hard parsing.
    4. The cursor and the buffer caches ARE SHARED by multiple sessions globally.
    So the short story is that there would rarely be a use case where ARRAYs like that would be preferred over accessing the data from the table.

  • Incompatible object argument for function call exception

    I am hoping someone has seen this issue before.
    Running CF 7.0.1.116466 with JRun 4.
    I have a 3rd party search engine application running on a
    separate server. I interface with the engine via their Java API. I
    am able to use the search engine when executing using a home grown
    Java application. It also worked with CF 6. However, when I try to
    implement the same cold in CF, it fails with the exception attached
    below. I am able to successfully create the objects. The error
    occurs when the objects attempt to connect with the engine.
    I have also attached the code that is causing the errors.
    "seObj" creates an interface with the search engine. It is
    constructed with the server address as a parameter. It does not
    attempt to contact the engine when it is first constructed.
    "dsObj" allows access to specific content in the engine. This
    is where the connection to the engine is attempted and the error
    occurs.
    Any assistance would be greatly appreciated.
    12/13 10:26:12 error (class: org/jacorb/orb/Delegate, method:
    getReference signature:
    (Lorg/jacorb/poa/POA;)Lorg/omg/CORBA/portable/ObjectImpl;)
    Incompatible object argument for function call
    java.lang.VerifyError: (class: org/jacorb/orb/Delegate,
    method: getReference signature:
    (Lorg/jacorb/poa/POA;)Lorg/omg/CORBA/portable/ObjectImpl;)
    Incompatible object argument for function call
    at org.jacorb.orb.ORB._getObject(Unknown Source)
    at org.jacorb.orb.ORB.string_to_object(Unknown Source)
    at com.engenium.semetric.Engine.initRef(Engine.java:731)
    at com.engenium.semetric.Engine.getDocSet(Engine.java:81)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
    Method)
    at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at
    coldfusion.runtime.java.JavaProxy.invoke(JavaProxy.java:74)
    at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1634)
    at cfinsert2ecfm673131553.runPage(C:\Documents and
    Settings\Jameso\My Documents\workspace\SemetricCF7\insert.cfm:12)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
    at
    coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
    at
    coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
    at
    coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:210)
    at
    coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:51)
    at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
    at
    coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27)
    at
    coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:69)
    at
    coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:52)
    at
    coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:2 8)
    at
    coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
    at
    coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
    at
    coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at
    coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:115)
    at coldfusion.CfmServlet.service(CfmServlet.java:107)
    at
    coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:78)
    at
    jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
    at
    jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at
    jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:257)
    at
    jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:541)
    at
    jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
    at
    jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:318)
    at
    jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:426)
    at
    jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:264)
    at
    jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

    Hi, Thanks.
    But the problem is still there.
    If I put
    public class SimpleThread extends Thread
    No problem, but if I put
    public class SimpleThread implements Runnable
    I got java.lang.VerifyError: (class: TestNotify, method: main signature: ([Ljava/lang/String;)V) Incompatible object argument for function call
    Exception in thread "main"
    Regards,
    Youbin
    Please refer to the following code:
    public class SimpleThread implements Runnable {
        private boolean isWaited = false;
        public void run() {
            synchronized(this) {
                while (true) {
                    System.out.println("Hi ------------");
                    try {
                        Thread.sleep(5000);
                        System.out.println("Start wait()");
                        isWaited=true;
                        wait();
                        isWaited=false;
    catch (Exception e) { }
    public class TestNotify {
    public static void main(String[] args) {
    SimpleThread simpleThread = new SimpleThread();
    simpleThread.start();
    try {
    Thread.sleep(10);
    } catch (Exception e) { }
    while (simpleThread.getIsWaited()) {
    synchronized(simpleThread) {
    System.out.println("Start notify()");
    simpleThread.notify();
    System.out.println("Arrived");
    int i=0;
    while (!simpleThread.getIsWaited()) {
    i++;
    System.out.println("Arrived="+i);
    synchronized(simpleThread) {
    System.out.println("Start notify() again");
    simpleThread.notify();
    System.out.println("Arrived again");

  • Uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE)

    Hi,
    I get an error when i try to access a webmail as below:
    Message: uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMHTMLDocument.createElementNS]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"
    Call Stack:
    Sorry, not yet implemented
    Date: Fri Jun 24 2011 23:22:18 GMT+0100 (GMT Daylight Time)
    UserAgent: Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20100101 Firefox/4.0.1

    The problem still happens in '''Firefox 9.0.1''' (see below).
    Installing Remote XUL Manager may be a workaround, but I´m concerned about security.
    Domino Release 8.5.2FP1 (Windows NT/Intel)
    $HaikuForm - 401.3
    Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
    12/27/2011 07:49:08PM A problem has occurred which may have caused the current operation to fail.
    12/27/2011 07:49:08PM uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMHTMLDocument.createElementNS]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: https://my-server.my-domain.com/iNotes/Forms85.nsf/iNotes/Proxy/?OpenDocument&Form=l_StdPageOperations_Gecko&l=en&CR&MX&TS=20101020T153425,75Z&charset=ISO-8859-1&PresetFields=s_FullmailView;1,s_FullListViewVirtual;1,s_mailView;1,s_Base;1,s_FullInit;1 :: CyB :: line 15" data: no]
    12/27/2011 07:49:08PM : 0

Maybe you are looking for

  • Photoshop elements 11 on disk but computer has no disk drive

    I recently switched computers and would like to use my purchased copy of Photoshop Elements 11 on my new computer. How do I install Photoshop elements 11 without a disk drive since the trials are all now Elements 12?

  • Why are my movies not shown in iTunes

    Hi, I have just bought a Mac Mini and have updated all the software etc to the latest versions. The problem I am having is that in the Leopard Movie folder I have all of my TV Shows and Films but the do not show up in the movie tab in iTunes, if i wa

  • Does my iMac have DVD burning capability?

    I recently bought an external HP dvd1270e only to find out it won't run unless I go out and spend a bunch for Windows 7 or some version, got me thinking whether my internal is already set up to burn.  Any help would be greatly appreciated, I'm fairly

  • I think I need an Script for this.

    Prensetly, I do this manually but I know there is a better (Mac!!) way.  Please help! I need iCal to send reminders of appointment dates and times to clients I schedule into my iCal. These reminders need to be emailed to the invitees/attendees email

  • Slow script message crome:/browser/content/tab browser./xml:537

    why does script run slow causing freeze error message crome:/browser/content/tab browser. xml:537 this happens mostly on facebook when trying to play games , farmville, or cityville system is windows vista