6 Replies Latest reply: Apr 9, 2013 10:15 AM by DecaXD RSS

    LKM/ CKM PARALLEL EXECUTION

    988433
      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
          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
            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
              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
                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
                  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
                    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