On Fri, Jul 25, 2008 at 2:59 PM, Simon Laws <[EMAIL PROTECTED]> wrote:
> > > On Fri, Jul 25, 2008 at 6:33 AM, Malte Marquarding < > [EMAIL PROTECTED]> wrote: > >> Also, why doesn't it look it up in the jar? I edited the ant script to >> include the path and remove the src directory, but that didn't help. >> >> Cheers, >> Malte. >> >> On Fri, Jul 25, 2008 at 2:49 PM, Malte Marquarding < >> [EMAIL PROTECTED]> wrote: >> >>> Hi, >>> I made some progress. The problem is that the 'nodeB' composite file is >>> looked up with an absolute path of server1 location of the file on server2. >>> I hope you know what I mean. I found this by moving both server1 and server2 >>> code into '/tmp' - the same location. >>> Now the example runs happily. >>> Shouldn't the file look up be relative. This seems to be a bug. >>> >>> Cheers, >>> Malte. >>> >>> >>> On Fri, Jul 25, 2008 at 10:10 AM, Malte Marquarding < >>> [EMAIL PROTECTED]> wrote: >>> >>>> Hi Simon, >>>> that's exactly what I did the very first time I tried this (before >>>> asking for help). I do get the same exception with respect ro FileNotFound >>>> on Host1 (server running domain). >>>> >>>> This is what the domain log says >>>> >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.workspace.admin.impl.CompositeImageCollectionImpl >>>> doGet >>>> [java] INFO: get NodeB >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.workspace.admin.impl.DeployedCompositeCollectionImpl >>>> getAll >>>> [java] INFO: getAll >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.workspace.admin.impl.DeployableCompositeCollectionImpl >>>> get >>>> [java] INFO: get composite: >>>> http://tuscany.apache.org/cloud;http://sample/cloud;NodeA >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.workspace.admin.impl.ContributionCollectionImpl get >>>> [java] INFO: get http://tuscany.apache.org/cloud >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.workspace.admin.impl.DeployableCompositeCollectionImpl >>>> get >>>> [java] INFO: get composite: >>>> http://tuscany.apache.org/cloud;http://sample/cloud;NodeB >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.workspace.admin.impl.ContributionCollectionImpl get >>>> [java] INFO: get http://tuscany.apache.org/cloud >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.workspace.admin.impl.DeployableCompositeCollectionImpl >>>> get >>>> [java] INFO: get composite: >>>> http://tuscany.apache.org/cloud;http://sample/cloud;NodeC >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.workspace.admin.impl.ContributionCollectionImpl get >>>> [java] INFO: get http://tuscany.apache.org/cloud >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.binding.atom.provider.AtomBindingListenerServlet >>>> doGet >>>> [java] INFO: >>> FeedEndPointServlet /composite-image/ >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.workspace.admin.impl.CompositeImageCollectionImpl >>>> query >>>> [java] INFO: query composite=composite:nodeB;http://sample >>>> ;CalculatorB >>>> [java] Jul 25, 2008 10:03:53 AM >>>> org.apache.tuscany.sca.workspace.admin.impl.ContributionCollectionImpl >>>> query >>>> [java] INFO: query alldependencies=nodeB >>>> >>>> >>>> Cheers, >>>> Malte >>>> >>>> >>>> On Fri, Jul 25, 2008 at 2:14 AM, Simon Laws <[EMAIL PROTECTED]> >>>> wrote: >>>> >>>>> >>>>> >>>>> On Tue, Jul 22, 2008 at 12:53 AM, Malte Marquarding < >>>>> [EMAIL PROTECTED]> wrote: >>>>> >>>>>> Hi Simon, >>>>>> I did the following >>>>>> >>>>>> Host 1: >>>>>> ant runDomain >>>>>> >>>>>> Host 2: >>>>>> I modified in my case the NodeB launcher to run in the remote >>>>>> location. I get an exception because it can find the artefacts >>>>>> >>>>>> ant runDomain >>>>>> ant runNodeB >>>>>> >>>>>> [java] INFO: Loading contribution: >>>>>> file:/Users/me/java/tuscany-sca-1.2.1-incubating/samples/calculator-distributed/./src/main/resources/nodeB/ >>>>>> [java] 22/07/2008 09:21:53 >>>>>> org.apache.tuscany.sca.node.launcher.NodeLauncherUtil node >>>>>> [java] SEVERE: SCA Node could not be created >>>>>> [java] java.lang.reflect.InvocationTargetException >>>>>> [java] at >>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) >>>>>> [java] at >>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >>>>>> [java] at >>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>>>>> [java] at >>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:494) >>>>>> [java] at >>>>>> org.apache.tuscany.sca.node.launcher.NodeLauncherUtil.node(NodeLauncherUtil.java:297) >>>>>> [java] at >>>>>> org.apache.tuscany.sca.node.launcher.NodeLauncher.createNode(NodeLauncher.java:60) >>>>>> [java] at >>>>>> org.apache.tuscany.sca.node.launcher.NodeLauncher.main(NodeLauncher.java:109) >>>>>> [java] at >>>>>> node.LaunchCalculatorNodeB.main(LaunchCalculatorNodeB.java:26) >>>>>> [java] Caused by: org.osoa.sca.ServiceRuntimeException: >>>>>> java.io.FileNotFoundException: >>>>>> /Users/me/java/tuscany-sca-1.2.1-incubating/samples/calculator-distributed/./src/main/resources/nodeB >>>>>> (No such file or directory) >>>>>> >>>>>> This directory is present on the remote domain (host 1) >>>>>> >>>>>> ls >>>>>> /Users/me/java/tuscany-sca-1.2.1-incubating/samples/calculator-distributed/./src/main/resources/nodeB >>>>>> 8 Calculator.composite 0 META-INF/ >>>>>> >>>>>> What else am I missing? >>>>>> >>>>>> Cheers, >>>>>> Malte. >>>>>> >>>>>> On Mon, Jul 21, 2008 at 9:20 PM, Simon Laws < >>>>>> [EMAIL PROTECTED]> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Mon, Jul 21, 2008 at 9:40 AM, Malte Marquarding < >>>>>>> [EMAIL PROTECTED]> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> Thanks that works. >>>>>>>> >>>>>>>> Does that mean you are running two domains? This is exactly what I >>>>>>>> stumbled over. I remote domain manger would certainly be good. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Malte >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Jul 21, 2008 at 3:06 PM, Luciano Resende < >>>>>>>> [EMAIL PROTECTED]> wrote: >>>>>>>> >>>>>>>>> The calculator-distributed already runs in multiple VM. Let me >>>>>>>>> describe the steps I had to do in order to run the sample in two >>>>>>>>> different machines. >>>>>>>>> >>>>>>>>> In one of the machine, I ran NodeB and NodeC by doing the following >>>>>>>>> : >>>>>>>>> >>>>>>>>> ant runDomain >>>>>>>>> ant runNodeB >>>>>>>>> ant runNodeC >>>>>>>>> >>>>>>>>> In the other machine, I ran NodeA that would connect to the remote >>>>>>>>> nodes (nodeB and NodeC). I have to modify the node composites, to >>>>>>>>> properly identify the remote uri for the nodes as follow : >>>>>>>>> >>>>>>>>> <component name="NodeB"> >>>>>>>>> <t:implementation.node uri="nodeB" >>>>>>>>> composite="s:CalculatorB"/> >>>>>>>>> <service name="Node"> >>>>>>>>> <binding.sca uri="http://tuscany1.domain.com:8200"/> >>>>>>>>> </service> >>>>>>>>> </component> >>>>>>>>> >>>>>>>>> <component name="NodeC"> >>>>>>>>> <t:implementation.node uri="nodeC" >>>>>>>>> composite="s:CalculatorC"/> >>>>>>>>> <service name="Node"> >>>>>>>>> <binding.sca uri=" >>>>>>>>> http://tuscany1.domain.com:8300"/> >>>>>>>>> </service> >>>>>>>>> </component> >>>>>>>>> >>>>>>>>> Then I ran nodeA : >>>>>>>>> >>>>>>>>> ant runDomain >>>>>>>>> ant runNodeA >>>>>>>>> >>>>>>>>> >>>>>>>>> The only thing I'm not sure is how I would tell the node to connect >>>>>>>>> to >>>>>>>>> a remote domain manager, that would simplify the steps to run >>>>>>>>> nodeA. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Sun, Jul 20, 2008 at 6:41 PM, Malte Marquarding >>>>>>>>> <[EMAIL PROTECTED]> wrote: >>>>>>>>> > Hi, >>>>>>>>> > any takers? I tried the API docs, but they are outdated - JIRA >>>>>>>>> submitted and >>>>>>>>> > trying to build from source. >>>>>>>>> > Cheers, >>>>>>>>> > Malte >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Luciano Resende >>>>>>>>> Apache Tuscany Committer >>>>>>>>> http://people.apache.org/~lresende<http://people.apache.org/%7Elresende> >>>>>>>>> http://lresende.blogspot.com/ >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> Hi >>>>>>> >>>>>>> In the case of samples/calculator-distributed the node launchers are >>>>>>> hard coded to talk to the domain at "http://localhost:9990". If you >>>>>>> look in each of the node launcher classes you will see lines like... >>>>>>> >>>>>>> NodeLauncher.main(new String[] {" >>>>>>> http://localhost:9990/node-config/NodeC"}); >>>>>>> >>>>>>> To run the domain in a remote location change the localhost here to >>>>>>> the host where the domain is running or write some launcher code that >>>>>>> takes >>>>>>> this URL as a parameter. >>>>>>> >>>>>>> The launcher for nodeA is slightly different from the launchers for B >>>>>>> and C in that it goes on to make the test calls but in all these cases >>>>>>> it >>>>>>> wouldn't be hard to change to accept the domain configuration URL as a >>>>>>> command line argument. If you decide to give this a go make a patch and >>>>>>> we >>>>>>> can update the sample. >>>>>>> >>>>>>> Regards >>>>>>> >>>>>>> Simon >>>>>>> >>>>>>> >>>>> Hi Malte >>>>> >>>>> Sorry this is such a late reply. I just didn't notice this come >>>>> through. You may have got past this now but anyhow.... >>>>> >>>>> You don't need to do "ant runDomain" on Host2. >>>>> >>>>> Your changes to the NodeB launcher should point it at the domain >>>>> running on Host1. Hence you don't need the domain running on Host2. Just >>>>> the >>>>> NodeB runs on Host2. >>>>> >>>>> Regards >>>>> >>>>> Simon >>>>> >>>> >>>> >>> >> > Hi Malte > > This sounds like a bug to me. Can you raise a JIRA for it ( > http://issues.apache.org/jira/browse/TUSCANY) and lets see if we can get > it fixed. > > Thanks > > Simon > Hi Malte A bit more information. I've just been trying this and I do see the problem you see when running across machines. The strange file read exception you are seeing occurs because the domain is trying to provide the remote node (NodeB) with a file system based contribution. When you run the node the configuration URL (http://9.20.188.196:9990/node-config/NodeB) is used to ask the domain for two things. 1 - the composite that is configured by the domain to represent the correct domain configuration. The actual result here is that all the service and reference URIs are filled in based on where each node is to be deployed using information from the node.composite files. 2 - the contributions that are required to provide the artifacts needed to run the composite at this node This sample has been written to work directly from the file system so that it's straightforward to edit and recompile. However this does cause the problem that you are seeing as the domain cannot provide a file system based contribution out to the remote node. What we need to do to make this work across nodes is package each nodes contribution as a jar. So please go ahead and raise a JIRA and I'll look at it as it seems natural to want to try the calculator distributed in a distributed environment. Regards Simon
