1 2 Previous Next 28 Replies Latest reply on Nov 16, 2016 6:45 PM by shawkins

    teiid getVDBs() method returns empty list.

    kulbhushanc

      I am running jboss wildfly 9.X server in domain mode using mod cluster I am getting empty list when I am calling getVDBs method of teiid admin api.

      Code line ModelNode outcome = this.connection.execute(request); returns

      {

          "outcome" => "failed",

          "result" => undefined,

          "failure-description" => {"WFLYDC0074: Operation failed or was rolled back on all servers. Server failures:" => {"server-group" => {"main-server-group" => {"host" => {"master" => {

              "server-one" => "WFLYCTL0158: Operation handler failed: org.jboss.msc.service.ServiceNotFoundException: Service service jboss.teiid.vdb-repository not found",

              "server-two" => "WFLYCTL0158: Operation handler failed: org.jboss.msc.service.ServiceNotFoundException: Service service jboss.teiid.vdb-repository not found"

          }}}}}},

          "rolled-back" => true,

          "server-groups" => {"main-server-group" => {"host" => {"master" => {

              "server-one" => {"response" => {

                  "outcome" => "failed",

                  "failure-description" => "WFLYCTL0158: Operation handler failed: org.jboss.msc.service.ServiceNotFoundException: Service service jboss.teiid.vdb-repository not found",

                  "rolled-back" => true

              }},

              "server-two" => {"response" => {

                  "outcome" => "failed",

                  "failure-description" => "WFLYCTL0158: Operation handler failed: org.jboss.msc.service.ServiceNotFoundException: Service service jboss.teiid.vdb-repository not found",

                  "rolled-back" => true

              }}

          }}}}

      }

       

      I am also getting error on console:

       

      Server:server-one] 21:35:16,863 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 77) WFLYCTL0013: Operation ("list-vdbs") fai

      ed - address: ([("subsystem" => "teiid")]): org.jboss.msc.service.ServiceNotFoundException: Service service jboss.teiid.vdb-repository not found

       

      Full stack trace:-at org.jboss.msc.service.ServiceContainerImpl.getRequiredService(ServiceContainerImpl.java:669)

      at org.jboss.as.controller.OperationContextImpl$OperationContextServiceRegistry.getRequiredService(OperationContextImpl.java:2013)

      at org.teiid.jboss.ListVDBs.getService(TeiidOperationHandler.java:976)

      at org.teiid.jboss.ListVDBs.getService(TeiidOperationHandler.java:968)

      at org.teiid.jboss.BaseOperationHandler$1.execute(BaseOperationHandler.java:79)

      at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:803)

      at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:601)

      at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:354)

      at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:330)

      at org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1183)

      at org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:362)

      at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:218)

      at org.jboss.as.controller.remote.TransactionalProtocolOperationHandler.internalExecute(TransactionalProtocolOperationHandler.java:234)

      at org.jboss.as.controller.remote.TransactionalProtocolOperationHandler$ExecuteRequestHandler.doExecute(TransactionalProtocolOperationHa

      at org.jboss.as.controller.remote.TransactionalProtocolOperationHandler$ExecuteRequestHandler$1.run(TransactionalProtocolOperationHandle

      at org.jboss.as.controller.remote.TransactionalProtocolOperationHandler$ExecuteRequestHandler$1.run(TransactionalProtocolOperationHandle

      at java.security.AccessController.doPrivileged(Native Method)

      at javax.security.auth.Subject.doAs(Unknown Source)

      at org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:81)

      at org.jboss.as.controller.remote.TransactionalProtocolOperationHandler$ExecuteRequestHandler$2$1.run(TransactionalProtocolOperationHand

      at org.jboss.as.controller.remote.TransactionalProtocolOperationHandler$ExecuteRequestHandler$2$1.run(TransactionalProtocolOperationHand

      at java.security.AccessController.doPrivileged(Native Method)

      at org.jboss.as.controller.remote.TransactionalProtocolOperationHandler$ExecuteRequestHandler$2.execute(TransactionalProtocolOperationHa

      at org.jboss.as.protocol.mgmt.AbstractMessageHandler$2$1.doExecute(AbstractMessageHandler.java:298)

      at org.jboss.as.protocol.mgmt.AbstractMessageHandler$AsyncTaskRunner.run(AbstractMessageHandler.java:518)

      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

      at java.lang.Thread.run(Unknown Source)

      at org.jboss.threads.JBossThread.run(JBossThread.java:320)

       

      Can you please suggest any solution.

       

      Thanks,

      Kulbhushan Chaskar.

        • 1. Re: teiid getVDBs() method returns empty list.
          shawkins

          It doesn't appear that the Teiid instance started successfully as the VDBRepository would be available otherwise.  Does your server log have earlier messages related to a failure to properly start Teiid?

          • 2. Re: teiid getVDBs() method returns empty list.
            rareddy

            Did you start with

             

            ./standalone.sh -c standalone-teiid.xml

            • 3. Re: teiid getVDBs() method returns empty list.
              kulbhushanc

              Ramesh..

               

              I am trying to setup jboss cluster , So I followed tutorial on https://docs.jboss.org/author/display/AS71/AS7+Cluster+Howto I am able to deploy VDB I can see it in domain.xml file but after that I started facing problems.

              • 4. Re: teiid getVDBs() method returns empty list.
                shawkins

                What is the exact combination of WildFly and Teiid versions that you are using, and are there previous logs in the server log indicating a failure to start Teiid services?

                • 5. Re: teiid getVDBs() method returns empty list.
                  kulbhushanc

                  Steven...

                   

                  I am using WildFly 9.0.2 and teiid 8.13, I also checked server logs it is not throwing any error during the loading/startup time. When I am trying to deploy VDB using admin api it gets deployed successfully I can see VDB using admin console also entry mentioned in the domain.xml file but I am not able to get VDB using getVDBs method.

                  • 6. Re: teiid getVDBs() method returns empty list.
                    shawkins

                    I don't think there are any more simple suggestions, so I'll try to reproduce this locally.

                    • 7. Re: teiid getVDBs() method returns empty list.
                      shawkins

                      I was not able to reproduce this yet.  Are you seeing other failed operations in addition ones using the VDBRepository service?

                      • 8. Re: teiid getVDBs() method returns empty list.
                        kulbhushanc

                        I have attached my domain.xml file, file contains deployment but when I tried to get VDB it returns an empty list. When I put debug point in a getVDBs method the code in red color never executed

                        because "if (Util.isSuccess(outcome))" always returns false results it return empty List....

                         

                        @Override

                          public List<? extends VDB> getVDBs() throws AdminException {

                                final ModelNode request = buildRequest("teiid", "list-vdbs");//$NON-NLS-1$ //$NON-NLS-2$

                                try {

                                    ModelNode outcome = this.connection.execute(request);

                                   if (Util.isSuccess(outcome)) {

                                        return getDomainAwareList(outcome, VDBMetadataMapper.INSTANCE);

                                    }

                                } catch (IOException e) {

                                  throw new AdminComponentException(AdminPlugin.Event.TEIID70036, e);

                                }

                                return Collections.emptyList();

                          }

                        • 9. Re: teiid getVDBs() method returns empty list.
                          shawkins

                          I'll update the code to throw the exception instead, but I'll have to investigate more to see what is causing the issue on the server side.

                          • 10. Re: teiid getVDBs() method returns empty list.
                            shawkins

                            I still can't reproduce your particular server side issue with the vdb service failure.  [TEIID-4551] Improve exception handling in Admin methods - JBoss Issue Tracker does however cleanup the client side exception handling so that you won't just see the empty list.

                            • 11. Re: teiid getVDBs() method returns empty list.
                              kulbhushanc

                              I am using windows o.s can o.s environment impact the server behaviour?

                              Can you please mentioned all steps how you are starting the web server in domain mode?

                              like standalone we follow steps like :

                              1.     create admin user.

                              2.     create normal user.

                              ...etc

                              n.    execute ./standalone.bat -c standalone-teiid.xml

                              • 12. Re: teiid getVDBs() method returns empty list.
                                shawkins

                                > I am using windows o.s can o.s environment impact the server behaviour?

                                 

                                I'm not sure as I'm testing on Fedora.

                                 

                                > Can you please mentioned all steps how you are starting the web server in domain mode?

                                 

                                On just a single machine after the normal Teiid install steps into WildFly, I'm using

                                 

                                ./domain.sh

                                 

                                The configuration is updated by:

                                 

                                ./jboss-cli.sh --file=scripts/teiid-domain-mode-install.cli

                                 

                                After that server1/server2 in the main server group should have Teiid available.

                                 

                                See also Installation Guide · Teiid Documentation

                                • 13. Re: teiid getVDBs() method returns empty list.
                                  kulbhushanc

                                  Thanks Steven, now I Can see some progress :-)

                                  But still came across some error during start up of the server:

                                  [Server:server-three] 17:40:32,420 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 14) WFLYCTL0013: Operation ("add") failed

                                  - address: ([

                                  [Server:server-three]     ("subsystem" => "teiid"),

                                  [Server:server-three]     ("transport" => "jdbc")

                                  [Server:server-three] ]) - failure description: {"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.teiid.transport.jdbc is missing [jboss

                                  .binding.teiid-jdbc]"]}

                                  [Server:server-three] 17:40:32,436 INFO  [org.jboss.as.controller] (ServerService Thread Pool -- 14) WFLYCTL0183: Service status report

                                  [Server:server-three] WFLYCTL0184:    New missing/unsatisfied dependencies:

                                  [Server:server-three]       service jboss.binding.teiid-jdbc (missing) dependents: [service jboss.teiid.transport.jdbc]

                                   

                                  by ignoring above error When I am trying to make connection with the database using application user and not management user.

                                  Code line "connection = DriverManager.getConnection("jdbc:teiid:" + VDBName + "@mm://" + IPAddress + ":" + port + ";", userName, password);"

                                  throws exception:

                                  org.teiid.jdbc.TeiidSQLException: TEIID20020 Error establishing socket to host and port: <IP_Address>:31000. Reason: Connection refused: connect

                                  connection = DriverManager.getConnection("jdbc:teiid:" + VDBName + "@mm://" + IPAddress + ":" + port + ";", userName, password);

                                  • 14. Re: teiid getVDBs() method returns empty list.
                                    shawkins

                                    > But still came across some error during start up of the server:

                                     

                                    Is that starting with a clean install?  Do you have the same issue in the main server group, or only in the other server group in server-three?

                                    1 2 Previous Next