Uploaded image for project: 'Pentaho Data Integration - Kettle'
  1. Pentaho Data Integration - Kettle
  2. PDI-3895

Jobs scheduled on DIS can not execute a transformation on a remote Carte Server

    Details

    • Type: Bug
    • Status: Closed
    • Severity: High
    • Resolution: Fixed
    • Affects Version/s: 4.0.0 GA
    • Fix Version/s: 4.0.0 GA
    • Component/s: None
    • Labels:
      None
    • Notice:
      When an issue is open, the "Fix Version/s" field conveys a target, not necessarily a commitment. When an issue is closed, the "Fix Version/s" field conveys the version that the issue was fixed in.

      Description

      Repro:

      1. Create a simple transformation, and a job to execute it.
      2. Create a job that executes the transformation, setting the remote slave to a vanilla Carte (Carte.bat startup)

      • this can be found on the Advanced tab of the Execute Transformation step.
        3. Schedule this job on DIS - when the transformation executes on the remote Carte server, you get the following exception:

      INFO 11-05 09:33:03,593 - RepositoriesMeta - Reading repositories XML file: C:\Documents and Settings\GMoran\.kettle\repositories.xml
      ERROR 11-05 09:33:06,031 - Unable to render embedded object: File (UserRoleListDelegate.ERROR_0001_UNABLE_TO_INITIALIZE_USER_ROLE_LIST_WEBSVC) not found.
      com.sun.xml.ws.client.ClientTransportException: The server sent HTTP status code 401: Unauthorized
      at com.sun.xml.ws.transport.http.client.HttpTransportPipe.checkStatusCode(HttpTransportPipe.java:222)
      at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:179)
      at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:93)
      at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105)
      at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629)
      at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588)
      at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573)
      at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470)
      at com.sun.xml.ws.client.Stub.process(Stub.java:319)
      at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:157)
      at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:109)
      at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
      at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:140)
      at $Proxy42.getUserRoleInfo(Unknown Source)
      at org.pentaho.di.repository.pur.w.R(SourceFile:39)
      at org.pentaho.di.repository.pur.w.<init>(SourceFile:24)
      at org.pentaho.di.repository.pur.e.<init>(SourceFile:22)
      at org.pentaho.di.repository.pur.s.<init>(SourceFile:19)
      at org.pentaho.di.repository.pur.PurRepository.connect(SourceFile:265)
      at org.pentaho.di.trans.TransExecutionConfiguration.<init>(TransExecutionConfiguration.java:653)
      at org.pentaho.di.trans.TransConfiguration.<init>(TransConfiguration.java:57)
      at org.pentaho.di.trans.TransConfiguration.fromXML(TransConfiguration.java:66)
      at org.pentaho.di.www.AddTransServlet.doGet(AddTransServlet.java:85)
      at org.pentaho.di.www.BaseHttpServlet.doPost(BaseHttpServlet.java:76)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:326)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
      at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
      at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

        Issue Links

          Activity

          Hide
          mlowery Mat Lowery (Inactive) added a comment -

          Above stack trace was caused by an incorrectly configured slave--wrong webapp path.

          After that was corrected, Golda got this message:

          14:37:16,343 ERROR [ActionAdapterQuartzJob] ActionAdapterQuartzJob.ERROR_0004 - Action "org.pentaho.platform.plugin.action.kettle.PdiAction" failed to run as a quartz job

          java.util.MissingResourceException: Can't find bundle for base name org.pentaho.platform.plugin.action.kettle.a.messages, locale en_US
          at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521)
          at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
          at java.util.ResourceBundle.getBundle(ResourceBundle.java:787)
          at org.pentaho.platform.util.messages.MessagesBase.getBundle(MessagesBase.java:43)
          at org.pentaho.platform.util.messages.MessagesBase.getErrorString(MessagesBase.java:91)
          at org.pentaho.platform.plugin.action.kettle.PdiAction.b(SourceFile:266)
          at org.pentaho.platform.plugin.action.kettle.PdiAction.execute(SourceFile:209)
          at org.pentaho.platform.scheduler2.quartz.ActionAdapterQuartzJob$1.call(ActionAdapterQuartzJob.java:129)
          at org.pentaho.platform.engine.security.SecurityHelper.runAsUser(SecurityHelper.java:178)
          at org.pentaho.platform.scheduler2.quartz.ActionAdapterQuartzJob.invokeAction(ActionAdapterQuartzJob.java:139)
          at org.pentaho.platform.scheduler2.quartz.ActionAdapterQuartzJob.execute(ActionAdapterQuartzJob.java:97)
          at org.quartz.core.JobRunShell.run(JobRunShell.java:199)
          at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:546)

          This is an obfuscation issue. But even if that was fixed, the line indicates a FileNotFoundException being thrown from EngineMetaLoader. Golda was loading the trans by path. Maybe the path was wrong. Maybe the path was not allowed by the currently running user. I will follow up with her.

          Show
          mlowery Mat Lowery (Inactive) added a comment - Above stack trace was caused by an incorrectly configured slave--wrong webapp path. After that was corrected, Golda got this message: 14:37:16,343 ERROR [ActionAdapterQuartzJob] ActionAdapterQuartzJob.ERROR_0004 - Action "org.pentaho.platform.plugin.action.kettle.PdiAction" failed to run as a quartz job java.util.MissingResourceException: Can't find bundle for base name org.pentaho.platform.plugin.action.kettle.a.messages, locale en_US at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521) at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260) at java.util.ResourceBundle.getBundle(ResourceBundle.java:787) at org.pentaho.platform.util.messages.MessagesBase.getBundle(MessagesBase.java:43) at org.pentaho.platform.util.messages.MessagesBase.getErrorString(MessagesBase.java:91) at org.pentaho.platform.plugin.action.kettle.PdiAction.b(SourceFile:266) at org.pentaho.platform.plugin.action.kettle.PdiAction.execute(SourceFile:209) at org.pentaho.platform.scheduler2.quartz.ActionAdapterQuartzJob$1.call(ActionAdapterQuartzJob.java:129) at org.pentaho.platform.engine.security.SecurityHelper.runAsUser(SecurityHelper.java:178) at org.pentaho.platform.scheduler2.quartz.ActionAdapterQuartzJob.invokeAction(ActionAdapterQuartzJob.java:139) at org.pentaho.platform.scheduler2.quartz.ActionAdapterQuartzJob.execute(ActionAdapterQuartzJob.java:97) at org.quartz.core.JobRunShell.run(JobRunShell.java:199) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:546) This is an obfuscation issue. But even if that was fixed, the line indicates a FileNotFoundException being thrown from EngineMetaLoader. Golda was loading the trans by path. Maybe the path was wrong. Maybe the path was not allowed by the currently running user. I will follow up with her.
          Hide
          mlowery Mat Lowery (Inactive) added a comment -

          Assigned back to Golda.

          Show
          mlowery Mat Lowery (Inactive) added a comment - Assigned back to Golda.
          Hide
          gdavid Golda Thomas added a comment -

          This issue is resolved now. I failed to use the instructions for setting up the carte server using the instructions in the admin guide.
          Do the following before working on anything.

          Executing Scheduled Jobs on a Remote Carte Server
          Follow the instructions below if you need to schedule a job that you want to run on a remote Carte server.
          Without making these configuration changes, you will be unable to remotely execute scheduled jobs.
          1. Stop the DI Server and remote Carte server.
          2. Open the /pentaho/server/data-integration-server/tomcat/webapps/pentaho-di/
          WEB-INF/web.xml file with a text editor.
          3. Find the Proxy Trusting Filter filter section, and add your Carte server's IP address to the paramvalue
          element.
          <filter>
          <filter-name>Proxy Trusting Filter</filter-name>
          <filterclass>
          org.pentaho.platform.web.http.filters.ProxyTrustingFilter</filterclass>
          <init-param>
          <param-name>TrustedIpAddrs</param-name>
          <param-value>127.0.0.1,192.168.0.1</param-value>
          <description>Comma separated list of IP addresses of a trusted
          hosts.</description>
          </init-param>
          <init-param>
          <param-name>NewSessionPerRequest</param-name>
          <param-value>true</param-value>
          <description>true to never re-use an existing IPentahoSession
          in the HTTP session; needs to be true to work around code put in for
          BISERVER-2639</description>
          </init-param>
          </filter>
          4. Uncomment the proxy trusting filter-mappings between the <Unable to render embedded object: File (-- begin trust --> and <) not found.-- end trust -->
          markers.
          <!-- begin trust -->
          <filter-mapping>
          <filter-name>Proxy Trusting Filter</filter-name>
          <url-pattern>/webservices/authorizationPolicy</url-pattern>
          </filter-mapping>
          <filter-mapping>
          <filter-name>Proxy Trusting Filter</filter-name>
          <url-pattern>/webservices/roleBindingDao</url-pattern>
          </filter-mapping>
          <filter-mapping>
          <filter-name>Proxy Trusting Filter</filter-name>
          <url-pattern>/webservices/userRoleListService</url-pattern>
          </filter-mapping>
          <filter-mapping>
          <filter-name>Proxy Trusting Filter</filter-name>
          <url-pattern>/webservices/unifiedRepository</url-pattern>
          </filter-mapping>
          <filter-mapping>
          <filter-name>Proxy Trusting Filter</filter-name>
          <url-pattern>/webservices/userRoleService</url-pattern>
          </filter-mapping>
          <filter-mapping>
          <filter-name>Proxy Trusting Filter</filter-name>
          <url-pattern>/webservices/Scheduler</url-pattern>
          </filter-mapping>
          <filter-mapping>
          <filter-name>Proxy Trusting Filter</filter-name>
          <url-pattern>/webservices/repositorySync</url-pattern>
          </filter-mapping>
          <!-- end trust -->
          5. Save and close the file, then edit the carte.sh or Carte.bat startup script on the machine that runs your
          Carte server.
          6. Add -Dpentaho.repository.client.attemptTrust=true to the java line at the bottom of the file.
          java $OPT -Dpentaho.repository.client.attemptTrust=true
          org.pentaho.di.www.Carte "$

          {1+$@}

          "
          7. Save and close the file.
          8. Start your Carte and DI Server
          You can now schedule a job to run on a remote Carte instance.

          Show
          gdavid Golda Thomas added a comment - This issue is resolved now. I failed to use the instructions for setting up the carte server using the instructions in the admin guide. Do the following before working on anything. Executing Scheduled Jobs on a Remote Carte Server Follow the instructions below if you need to schedule a job that you want to run on a remote Carte server. Without making these configuration changes, you will be unable to remotely execute scheduled jobs. 1. Stop the DI Server and remote Carte server. 2. Open the /pentaho/server/data-integration-server/tomcat/webapps/pentaho-di/ WEB-INF/web.xml file with a text editor. 3. Find the Proxy Trusting Filter filter section, and add your Carte server's IP address to the paramvalue element. <filter> <filter-name>Proxy Trusting Filter</filter-name> <filterclass> org.pentaho.platform.web.http.filters.ProxyTrustingFilter</filterclass> <init-param> <param-name>TrustedIpAddrs</param-name> <param-value>127.0.0.1,192.168.0.1</param-value> <description>Comma separated list of IP addresses of a trusted hosts.</description> </init-param> <init-param> <param-name>NewSessionPerRequest</param-name> <param-value>true</param-value> <description>true to never re-use an existing IPentahoSession in the HTTP session; needs to be true to work around code put in for BISERVER-2639 </description> </init-param> </filter> 4. Uncomment the proxy trusting filter-mappings between the < Unable to render embedded object: File (-- begin trust --> and <) not found. -- end trust --> markers. <!-- begin trust --> <filter-mapping> <filter-name>Proxy Trusting Filter</filter-name> <url-pattern>/webservices/authorizationPolicy</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Proxy Trusting Filter</filter-name> <url-pattern>/webservices/roleBindingDao</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Proxy Trusting Filter</filter-name> <url-pattern>/webservices/userRoleListService</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Proxy Trusting Filter</filter-name> <url-pattern>/webservices/unifiedRepository</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Proxy Trusting Filter</filter-name> <url-pattern>/webservices/userRoleService</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Proxy Trusting Filter</filter-name> <url-pattern>/webservices/Scheduler</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Proxy Trusting Filter</filter-name> <url-pattern>/webservices/repositorySync</url-pattern> </filter-mapping> <!-- end trust --> 5. Save and close the file, then edit the carte.sh or Carte.bat startup script on the machine that runs your Carte server. 6. Add -Dpentaho.repository.client.attemptTrust=true to the java line at the bottom of the file. java $OPT -Dpentaho.repository.client.attemptTrust=true org.pentaho.di.www.Carte "$ {1+$@} " 7. Save and close the file. 8. Start your Carte and DI Server You can now schedule a job to run on a remote Carte instance.
          Hide
          gdavid Golda Thomas added a comment -

          This issue is resolved. All it needed was the modification in carte and other files mentioned.

          Show
          gdavid Golda Thomas added a comment - This issue is resolved. All it needed was the modification in carte and other files mentioned.
          Hide
          kcruzada Kurtis Cruzada added a comment -

          Bulk change to close issues for QA Validation.

          Show
          kcruzada Kurtis Cruzada added a comment - Bulk change to close issues for QA Validation.

            People

            • Assignee:
              gdavid Golda Thomas
              Reporter:
              gmoran Gretchen Moran (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: