9 Replies Latest reply: Dec 15, 2011 11:01 AM by Rob Cernich RSS

Switchyard Console (1.0.0.Beta17) not working, remoting IOException

Murray Todd Williams Newbie

With no small amount of excitement, I've been wanting to kick the tires of Switchyard a bit since the 0.3.0 release came out. (I'm pretty new to ESB patterns and have been working with CDI a lot recently, so Switchyard seemed like the perfect jumping-in point.)

 

I think I'm able to get Switchyard to run, but I was hoping to be able to use its console to "see" the modules I'm deploying, and the console is just not working.

 

In case it had something to do with the deployment, I installed JBoss AS7 + Switchyard fresh three different ways:

  1. On my Mac laptop, using the AS7+Switchyard bundle
  2. On my Mac laptop with a fresh AS7.0.2 + the Switchyard installer
  3. On a Linux server with a fresh AS7.0.2 + the Switchyard installer

 

Given the error messages (which I'll mention in a moment) I suspected there could be something wrong with port configurations, just in case the Mac laptop had a conflict with some other running system, thus the standalone installation on a fresh Linux system.

 

The error message that shows up on the console log is

 

ERROR [org.jboss.remoting.remote] (XNIO NIO Read 6) JBREM00200: Remote connection failed: java.io.IOException: Window open for non-existent channel

 

or sometimes the last part read "java.io.IOException: Message data for non-existent channel" instead. These lines show up whenever I click on any of the Components sections in the console. Makes me wonder if it has something to do with the GWT communications, but looking at by browser's debugger when I click on the items, I'm seeing GTW data (encoded... looks meaningless) coming and going.

 

I have noticed that there was a comment in the Git console about SWITCHYARD-361 (update console to use new admin functionality) suggesting that there was a bug that cropped up with AS7 (AS7-1296) that might be causing this.

 

My questions are (a) can anyone confirm that this is normal and not an indication of something I did wrong in my setup and deployment? and (b) are there any other ways to interact with the Switchyard system to list the running components and otherwise debug the environment?

 

Okay, two other similar questions...

  • is there an easy way to get the console to run in the OpenShift + SwitchYard environment?, and
  • (related to my other question about interacting with the Switchyard system) is therer a text/forge/service-call approach that could be used with an OpenShift + SwitchYard environment to see the deployed components, etc.?
  • 1. Re: Switchyard Console (1.0.0.Beta17) not working, remoting IOException
    Rob Cernich Master

    Hey Murray,

     

    Sorry to hear you are having problems.

    ERROR [org.jboss.remoting.remote] (XNIO NIO Read 6) JBREM00200: Remote connection failed: java.io.IOException: Window open for non-existent channel

    Unfortunately, these are spurious errors.  I believe they have something to do with remoting of the management calls.  These should clear up once the console is integrated with the core AS7 console.

     

     

    I'm seeing GTW data (encoded... looks meaningless) coming and going.

    This is the native form of the calls to the management subsystem (encoded JSON).

     

    My questions are (a) can anyone confirm that this is normal and not an indication of something I did wrong in my setup and deployment? and (b) are there any other ways to interact with the Switchyard system to list the running components and otherwise debug the environment?

    A.  You did nothing wrong.

    B.  The SwitchYard console is simply a view atop the management functionality registered by SwitchYard.  This means you can access all information through the JBoss admin command line (i.e. $AS7_HOME/bin/jboss-admin.sh).  Some commands of interest: (note, the preceding ':' is required)

     

    // move to the switchyard subsystem
    cd /subsystem=switchyard
    :get-version
    :list-components
    :list-applications
    :list-services
    
    :read-component
    :read-application
    :read-service
    
    // move to a deployment.  substitute "deployment name" and "application name" as applicable.  note, you can use TAB for autocomplete.
    cd /deployment=<deployment name>/subsystem=switchyard/application=<application qname>
    :read-reasource
    

     

    The above is a summary of the SwitchYard specific commands.  All of the operations under "subsystem=switchyard" provide descriptions of their use (e.g. :read-operation-description(name=list-applications) ).  Refer to the AS7 documentation regarding the management console for more details.

     

     

    Okay, two other similar questions...

    • is there an easy way to get the console to run in the OpenShift + SwitchYard environment?, and
    • (related to my other question about interacting with the Switchyard system) is therer a text/forge/service-call approach that could be used with an OpenShift + SwitchYard environment to see the deployed components, etc.?

    Unfortunately, I don't have answers for those.

     

    Hope that helps a bit.

     

    Best,

    Rob

  • 2. Re: Switchyard Console (1.0.0.Beta17) not working, remoting IOException
    Murray Todd Williams Newbie

    Thanks.

     

    That's a big help (both the confirmation that I'm not doing anything wrong in my deployment and the jboss-admin console notes).

  • 3. Re: Switchyard Console (1.0.0.Beta17) not working, remoting IOException
    Keith Babo Master

    Are you able to view the console @ http://localhost:8080/switchyard/ independent of the ERROR messages in the log?  If not, please let us know.  I just downloaded the SwitchYard AS7 distro and the tools bundle and verified that the console does work.  After unzipping both, I copied switchyard-console-gwt.war to switchyard-as7-0.3/standalone/deployments and the console was good to go.

     

    cheers,

    keith

  • 4. Re: Switchyard Console (1.0.0.Beta17) not working, remoting IOException
    Keith Babo Master

    Okay, two other similar questions...

    • is there an easy way to get the console to run in the OpenShift + SwitchYard environment?, and
    • (related to my other question about interacting with the Switchyard system) is therer a text/forge/service-call approach that could be used with an OpenShift + SwitchYard environment to see the deployed components, etc.?

     

    I can't think of any reason why the console wouldn't work inside of OpenShift.  Be sure to use the instructions in our template application to get all the necessary config and modules in place.  Then copy the switchyard-console war into the deployments directory of your OpenShift application.  Once you push, the console app will be deployed along with the SwitchYard application.  The console war is pretty big - so the upload could take a while.

     

    There is no support outside of the rhc-* tools to manage/monitor your application inside of OpenShift.  I think the AS team is looking at exposing the AS7 CLI... maybe. :-) Magesh will know for sure and I'm sure he'll chime in when he comes online.  If that happens, then you could use some of the commands that Rob listed earlier.  When we move to Flex, then the possibilities open up a bit and we plan to explore that in a future release. 

  • 5. Re: Switchyard Console (1.0.0.Beta17) not working, remoting IOException
    Magesh Bojan Master

    Hi Murray,

     

    Yes the AS7 CLI access is on the cards. But it might be a while. The OpenShift Express is resource restricted as of today. You can consider hosting a single application in one instance at the moment and it is not recommended for heavy use. But if you move to OpenShift Flex, you get unlimited resources. Flex is the place where you might deploy the SwitchYard console too.

     

    In any case, to know the list of components that are deployed to either of these servers, you can examine the config file at <your app>/.openshift/config. You can enable and disable the subsystems and SwitchYard components via the configuration there and push to the cloud. You can tail the server logs using the rhc-tail-files command. More info is here Scott Stark's Blog: Getting your logs from Express | JBoss Community

     

    Hope this helps!

    Magesh

  • 6. Re: Switchyard Console (1.0.0.Beta17) not working, remoting IOException
    Murray Todd Williams Newbie

    Keith Babo wrote:

     

    Are you able to view the console @ http://localhost:8080/switchyard/ independent of the ERROR messages in the log?  If not, please let us know.  I just downloaded the SwitchYard AS7 distro and the tools bundle and verified that the console does work.  After unzipping both, I copied switchyard-console-gwt.war to switchyard-as7-0.3/standalone/deployments and the console was good to go.

     

    cheers,

    keith

     

    Keith,

     

    Yes, I do appear to be able to use the Switchyard Console. I was able to walk through your SwitchYard and Forge video (that was a godsend for getting me on my first "helloworld" path!) and deploy a service and then I could actually look at it in the console. Otherwise I wasn't sure whether the console was working or not—out of the box since the components don't really have any settings and there aren't any services, I didn't know if the console was working or if I was just sort of seeing an unpopulated UI shell, if that makes any sense.

     

    One thing that doesn't seem to be working is the little "settings" link under the big SwitchYard banner. If I click it I see in the messages section "Could not reveal: settings". Probably not a big deal.

     

    Murray

  • 7. Re: Switchyard Console (1.0.0.Beta17) not working, remoting IOException
    Keith Babo Master

    Good deal.  If you want to see some action in the console, I recommend building and deploying some of the quickstarts in the SwitchYard distribution.  You can go into the quickstarts/ directory and use "mvn install" to build them all.  Then deploy some (e.g. bean-service) to the server and check the console again. 

  • 8. Re: Switchyard Console (1.0.0.Beta17) not working, remoting IOException
    Murray Todd Williams Newbie

    Keith Babo wrote:

     

    I can't think of any reason why the console wouldn't work inside of OpenShift.  Be sure to use the instructions in our template application to get all the necessary config and modules in place.  Then copy the switchyard-console war into the deployments directory of your OpenShift application.  Once you push, the console app will be deployed along with the SwitchYard application.  The console war is pretty big - so the upload could take a while.

     

     

    Well, I was able to create the template application, added the sample service (via forge), ran mvn package, added the console war to the deployments directory, git added, committed and pushed. You were right—it took a while upload things with the console war. The console does display, but I couldn't any components. The "System Details Runtime Version:" just shows a blank space, no "0.3.0.Final" or anything. No components list.

     

    Not that this is a big deal at the moment. It would be cool to be able to deploy my first test services to the OpenShift Express cloud (and be able to see and debug them) as some first steps, but I realize we're in the "0.x" version of things. (I'm pretty blown away by everything. It really feels like AS7+SwitchYard is the culmination of everything CDI promised, all in one neat package.)

     

    Thanks again,

     

    Murray

  • 9. Re: Switchyard Console (1.0.0.Beta17) not working, remoting IOException
    Rob Cernich Master

    Hey Murray

    Well, I was able to create the template application, added the sample service (via forge), ran mvn package, added the console war to the deployments directory, git added, committed and pushed. You were right—it took a while upload things with the console war. The console does display, but I couldn't any components. The "System Details Runtime Version:" just shows a blank space, no "0.3.0.Final" or anything. No components list.

     

    That makes sense, based on what Magesh said (the console redirects to the management interface under the hood so it can't get the information to display).

     

    Thanks for trying it out.

    Rob