This discussion is archived
6 Replies Latest reply: Apr 9, 2013 8:15 AM by DecaXD RSS

LKM/ CKM PARALLEL EXECUTION

988433 Newbie
Currently Being Moderated
We are trying to implement the parallel support for the lkm/ ckm execution.
We used the below code to re-name the flow table name:
<% odiRef.setTableName("INT_SHORT_NAME", "%INT_PRF" + odiRef.getPop("I_POP")+"_"+ odiRef.getSession("SESS_NO") ) ;%>

Getting the below error in the drop flow table step, it only happens with odiRef.getSession("SESS_NO"), it works all fine if we do not use odiRef.getSession("SESS_NO") :
com.sunopsis.tools.core.exception.SnpsSimpleMessageException: ODI-17517: Error during task interpretation.
Task: 2
java.lang.Exception: BeanShell script error: Parse error at line 2, column 10. Encountered: ( BSF info: Drop flow table at line: 0 column: columnNo
     at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:489)
     at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:737)
     at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:465)
     at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2129)
     at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
     at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
     at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
     at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
     at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
     at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
     at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
     at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.Exception: BeanShell script error: Parse error at line 2, column 10. Encountered: ( BSF info: Drop flow table at line: 0 column: columnNo
     at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:476)
     ... 11 more
Caused by: org.apache.bsf.BSFException: BeanShell script error: Parse error at line 2, column 10. Encountered: ( BSF info: Drop flow table at line: 0 column: columnNo
     at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
     at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
     at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:471)
     ... 11 more

Text: ### KEY com.sunopsis.res.gen / ODI-15015: Too much recursion in this text resolution.### (Drop flow table)
out.print("drop table ") ;
out.print(odiRef.getTable("L", "INT_NAME", "W")) ;
out.print(" ") ;
if (new Integer(odiRef.getOption( "COMPATIBLE" )).intValue() >= 10 ) { out.print( "purge" ); };
****** ORIGINAL TEXT ******
drop table <?=snpRef.getObjectName("L", "%INT_PRF1230010_<?=snpRef.getSession(\"SESS_NO\") ????????????????>", "W") ?> .
     at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:764)
     at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:465)
     at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2129)
     at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
     at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
     at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
     at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
     at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
     at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
     at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
     at java.lang.Thread.run(Thread.java:619)

Edited by: user740427 on Apr 1, 2013 2:25 PM
  • 1. Re: LKM/ CKM PARALLEL EXECUTION
    Bhabani Ranjan Guru
    Currently Being Moderated
    If its in oracle , then it might be the issue with the length of table name. Is it exceeding 28 characters ?

    Bhabani
    http://dwteam.in
  • 2. Re: LKM/ CKM PARALLEL EXECUTION
    988433 Newbie
    Currently Being Moderated
    Hi Bhabani, Yes it is in Oracle. But it is not exceeding 28 characters. It comes to only ~18 characters. It seems issue does not come if I do not use <%=odiRef.getSession("SESS_NO").
  • 3. Re: LKM/ CKM PARALLEL EXECUTION
    Bhabani Ranjan Guru
    Currently Being Moderated
    Hmm, I got it now. the issue was with parsing. Copy pest below codes. It will work for you I believe.

    1st step: Java Beanshell technology

    <$
    String ssno ="<%=odiRef.getSession("SESS_NO")%>" ;
    $>
    <%
    String ssno1="<$=ssno$>";
    odiRef.setTableName("INT_SHORT_NAME", "%INT_PRF" + odiRef.getPop("I_POP")+"_"+ssno1) ;
    %>

    Bhabani
    http://dwteam.in
  • 4. Re: LKM/ CKM PARALLEL EXECUTION
    988433 Newbie
    Currently Being Moderated
    Thanks, Bhabani.
    Above code seems to be working. But it seems once you put the above code, odiRef.getTable("L","INT_NAME","A") is returning - FUSION_ODI_STAGE."I$_1230010_146911019" instead of FUSION_ODI_STAGE.I$_1230010_146911019
    This causes the failure in Analyze integration table step:
    Code"
    ==============================================
    <% if (new Integer(odiRef.getOption( "COMPATIBLE" )).intValue() < 9 ) { %>

    analyze table <%=odiRef.getTable("L","INT_NAME","A")%> estimate statistics

    <% } else { %>

    begin
    dbms_stats.gather_table_stats(
    ownname => '<%=odiRef.getInfo( "DEST_WORK_SCHEMA" )%>',
         tabname => '<%=odiRef.getTable("L","INT_NAME","A").replaceAll("","").replaceAll("..>",".replaceAll(odiRef.getInfo( \\u0022DEST_WORK_SCHEMA\\u0022 )+\\u0022.\\u0022,\\u0022\\u0022)?>")%>',     
         estimate_percent => dbms_stats.auto_sample_size
    );
    end;

    <% }; %>
    ==============================================

    Error we are getting:
    2013-04-03 11:39:43.493 WARNING ODI-1134 Agent Internal encountered an error: ODI-17517: Error during task interpretation.
    Task: 6
    java.lang.Exception: BeanShell script error: Parse error at line 4, column 10. Encountered: ( BSF info: Analyze integration table at line: 0 column: columnNo
         at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:489)
         at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:737)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:465)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2129)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
         at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
         at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
         at java.lang.Thread.run(Thread.java:619)
    Caused by: java.lang.Exception: BeanShell script error: Parse error at line 4, column 10. Encountered: ( BSF info: Analyze integration table at line: 0 column: columnNo
         at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:476)
         ... 11 more
    Caused by: org.apache.bsf.BSFException: BeanShell script error: Parse error at line 4, column 10. Encountered: ( BSF info: Analyze integration table at line: 0 column: columnNo
         at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
         at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
         at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:471)
         ... 11 more

    Text:

    begin
    dbms_stats.gather_table_stats(
    ownname => '<?=snpRef.getInfo("DEST_WORK_SCHEMA") ?>',
         tabname => '<?=snpRef.getObjectName("L", "%INT_PRF1230010_<$=ssn.replaceAll(odiRef.getInfo( "DEST_WORK_SCHEMA" )+".","")?>", "W").replaceAll(odiRef.getInfo( "DEST_WORK_SCHEMA" )+".","")?>',     
         estimate_percent => dbms_stats.auto_sample_size
    );
    end;

    .
    2013-04-03 11:39:43.493 ERROR ODI-1217 Session Init Profile Status (146912019) fails with return code 7000.

    Could you please help?
  • 5. Re: LKM/ CKM PARALLEL EXECUTION
    rpfammatter Newbie
    Currently Being Moderated
    Error we ar getting:
    ODI-1217: Session 01_F56AC (4883931) nicht erfolgreich mit Return Code 7000.
    Caused By: com.sunopsis.tools.core.exception.SnpsSimpleMessageException: ODI-17517: Fehler während Task-Interpretation.
    Task: 4
    java.lang.Exception: BeanShell script error: Parse error at line 2, column 10. Encountered: ( BSF info: Analyze work table at line: 0 column: columnNo
         at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:485)
         at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:711)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
         at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
         at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:83)
         at java.lang.Thread.run(Thread.java:662)
    Caused by: org.apache.bsf.BSFException: BeanShell script error: Parse error at line 2, column 10. Encountered: ( BSF info: Analyze work table at line: 0 column: columnNo
         at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
         at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
         at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:471)
         ... 11 more

    Text:

    BEGIN
    DBMS_STATS.GATHER_TABLE_STATS (
    ownname =>     '<?=snpRef.getInfo(*DEST_WORK_SCHEMA*) ?>',
    tabname =>     '<?=snpRef.getObjectName(*L*, *%COL_PRF0F56AC*, W).replaceAll(odiRef.getInfo( DEST_WORK_SCHEMA )+*.*,**)?>',
    estimate_percent =>     DBMS_STATS.AUTO_SAMPLE_SIZE
    );
    END;


    .
         at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:738)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
         at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
         at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:83)
         at java.lang.Thread.run(Thread.java:662)

    Could you please help?
  • 6. Re: LKM/ CKM PARALLEL EXECUTION
    DecaXD Pro
    Currently Being Moderated
    Hi,

    "I$_1230010_146911019" means that your table is called 1230010 right? Try using a letter as first digit, for example T1230010, the quotes will disappear..

    Edited by: DecaXD on Apr 9, 2013 8:15 AM

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points