Hi Vince,
Sorry I forgot to ask one importnt thing. The RMIIF environment variable is defined in startup script startofbiz.sh. But I'm using the windows environment to test it. Now in this case how can I set this RMIIF in our environment variable. Also, will there be any difference in the contents of PosSyncSeetings.xml on PSS+POS System and MCS System as I'm calling same two services on both system. This i the place where I'm a bit confused. -- With regards, S K Pradeep kumar |
Administrator
|
> Hi Vince, > > Sorry I forgot to ask one importnt thing. The RMIIF environment variable is > defined in startup script startofbiz.sh. But I'm using the windows > environment to test it. Now in this case how can I set this RMIIF in our > environment variable. Simply tranpose to Windows this is a param tpo pass to JVM : -Djava.rmi.server.hostname=<set your IP address here>" > Also, will there be any difference in the contents of PosSyncSeetings.xml on > PSS+POS System and MCS System as I'm calling same two services on both > system. This i the place where I'm a bit confused. Are you using 2 different DBs on the PSS+POS System (one for each OFBiz instance) ? Are you relaying through PSS when you send from POS to MCS (this is the intended basic scheme, of course you can build your own...) ? Jacques > -- > With regards, > S K Pradeep kumar > |
Pradeep Your settings looked fine in PosSyncSettings.xml. I have the impression from your thread so far that you understand the setup when eliminating the PSS and using the POS terminal to go directly to MCS. This is the setup we have used as well so we're on the same page with that configuration. It can get a little tricky knowing what config to load on what server (POS or MCS.) I have some notes at the top of my custom PosSyncSettings.xml that I will send in a follow up message. Unfortunately I have to boot another computer to get to them. But they go step by step on what to load where. ----- Original Message ----- From: "Jacques Le Roux" <[hidden email]> To: [hidden email] Sent: Monday, April 21, 2008 3:45:47 AM (GMT-0700) America/Denver Subject: Re: Problems while PUSH and PULL entity sync process in POS > Hi Vince, > > Sorry I forgot to ask one importnt thing. The RMIIF environment variable is > defined in startup script startofbiz.sh. But I'm using the windows > environment to test it. Now in this case how can I set this RMIIF in our > environment variable. Simply tranpose to Windows this is a param tpo pass to JVM : -Djava.rmi.server.hostname=<set your IP address here>" > Also, will there be any difference in the contents of PosSyncSeetings.xml on > PSS+POS System and MCS System as I'm calling same two services on both > system. This i the place where I'm a bit confused. Are you using 2 different DBs on the PSS+POS System (one for each OFBiz instance) ? Are you relaying through PSS when you send from POS to MCS (this is the intended basic scheme, of course you can build your own...) ? Jacques > -- > With regards, > S K Pradeep kumar > |
Hi Vince,
I'm also trying to setup POS completely and struggling around the PULL activity. I've configured POS for only POS terminals and one MCS. Here with my settings, PUSH is being called successfully but I'm not able to configure PULL in the system. I knew from the mailing list, you have experimented a lot in POS. At present my serviceengine.xml of POS Terminal is configured with this setting: <service-location name="main-rmi" location="rmi://server:1098/RMIDispatcher"/> <service-location name="main-http" location="http://server:8089/webtools/control/httpService"/> <service-location name="entity-sync-rmi" location="rmi://server:1098/RMIDispatcher"/> <service-location name="entity-sync-http" location="http://server:8089/webtools/control/httpService"/> <service-location name="rita-rmi" location="rmi://server:1098/RMIDispatcher"/> <service-location name="eedcc-test" location="http://server:8089/webtools/control/httpService"/> The serviceengine.xml of Server (MCS) is configured with this setting: <service-location name="main-rmi" location="rmi://localhost:1088/RMIDispatcher"/> <service-location name="main-http" location="http://localhost:8080/webtools/control/httpService"/> <service-location name="entity-sync-rmi" location="rmi://localhost:1088/RMIDispatcher"/> <service-location name="entity-sync-http" location="http://localhost:8080/webtools/control/httpService"/> <service-location name="rita-rmi" location="rmi://localhost:1088/RMIDispatcher"/> <service-location name="eedcc-test" location="http://localhost:8080/webtools/control/httpService"/> I've configured the PosSyncSettings.xml of POS Terminal with PUSH but I'm getting difficulty to configure PULL, like what kind of setting I need to do on both POS Terminal and Server(MCS) regarding PULL. How every POS Terminal can call PULL so that all inventory, returns and Promo kind of information will be updated on all POS Terminals. Any help is highly appreciated. Thanx in advance, Ajey
|
Ajey
Not sure if it matters but in the serviceengine.xml file I only change the enity-sync-rmi, not the others. Below is a PosSyncSettings.xml file that includes fairly detailed notes on what to load where (POS vs. MCS) and in what order. Hope it helps. When I modified this file it was the same approach you are taking, a POS terminal and MCS with no per store servers. So it should be exactly what you are trying to do. I would also suggest that as you are going thru the learning process use a dev environment that you can wipe clean and start over many times if necessary. You will need to get used to how synchronization is triggered and it helps if you can clean out the sync settings on all machines (POS, PSS, MCS) and start over. <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 2007-12-05 vclark Notes EntiyGroup EntityGroup and EntityGroupEntry records are only loaded on Master Central Server (MCS). When the "PULL" sync occurs those records are copied down to the POS terminal. This allows for changes to be made on MCS and propogate down to terminals. Both sets of EntityGroup records (5501 and 5506) are reused across terminals. No need to have separate EntityGroup records for each terminal. EntitySync (PULL) EntitySync record is loaded on MCS. entitySyncId must be unique for each terminal so we use the POS terminal ID. EntitySync (PUSH) EntitySync record is loaded on POS terminal. Can use the same enitySyncId since it is loaded on each terminal, not MCS. RecurrenceRule, RecurrenceInfo, RuntimeData Both of these sets of records are loaded on the POS terminal. This initiates PUSH and PULL transfers and these are always initiated from the terminals, not MCS. Step by Step Instructions 1. Setup POS terminal with clean checkout from trunk 2. In startofbiz.sh/bat set RMIIF to localhost (uncomment the line.) 3. Create empty ofbiz database and populate with seed data (ant run-install-seed). Note that for testing/learning you can load demo data as well. For a production environment you will need to only load seed, then do all of your organization specific setup such as accounting, facilities, stores, etc. 4. framework/service/config/serviceengine.xml - enity-sync-rmi set to MCS. 5. Start POS terminal in standard mode (web interface) 6. Load EntitySync record for PULL on MCS. 7. Load XML on POS terminal to trigger PULL sync 8. Load EntitySync PUSH on POS terminal. 9. When pull is finished, load XML to trigger PUSH 10. Shutdown OfBiz on POS terminal 11. pos-containers.xml on POS client - set xui session id = <facilityId-pos terminal number> ex. 10020-1. 12. pos-containers.xml on POS client - set faclility ID = <facilityId) ex. 10020. --> <entity-engine-xml> <!-- MCS->POS Per Store Server to POS Terminal This data is loaded on the Master Central Server --> <EntityGroup entityGroupId="5501" entityGroupName="POS: Per Store Server to POS Terminal"/> <!-- these are used to update sync settings on the POS terminals from the central server --> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.entity.group" applEnumId="ESIA_INCLUDE"/> <!-- this is the general product information needed for pricing, promotions, basic product info, etc --> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.product" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.price" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.promo" applEnumId="ESIA_INCLUDE"/> <!-- org.ofbiz.product.category is needed for certain promotions, probably won't be used much for category browsing in the POS --> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.category" applEnumId="ESIA_INCLUDE"/> <!-- org.ofbiz.party.party may be needed for certain promotions --> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.pos.PosTerminal" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.storage" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.store" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.accounting.tax" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.login" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.securitygroup" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> <!-- POS->MCS Per Store Server to Central Server --> <EntityGroup entityGroupId="5506" entityGroupName="POS: Per Store Server to Central Server"/> <!-- org.ofbiz.party.party may be needed for order related information, like party roles or contact info etc --> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> <!-- all order and related information, including payment, etc info --> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.order" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.invoice" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.payment" applEnumId="ESIA_INCLUDE"/> <!-- include inventory and issuance info --> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.shipment.issuance" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalLog" applEnumId="ESIA_INCLUDE"/> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalState" applEnumId="ESIA_INCLUDE"/> <!-- include POS transactions --> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalInternTx" applEnumId="ESIA_INCLUDE"/> <!-- Some examples of EntitySync settings for pulling and pushing data around --> <!-- POS example meant to be used for pushing data from POS to MCS --> <EntitySync entitySyncId="POSPUSH" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" targetServiceName="remoteStoreEntitySyncDataRmi" keepRemoveInfoHours="24" forPushOnly="Y"/> <EntitySyncIncludeGroup entitySyncId="POSPUSH" entityGroupId="5506"/> <!-- POS example meant to be used for pulling data from MCS to POS --> <!-- NOTE: for pulling setup the EntitySync record lives on the server the data is pulled from and should ONLY BE USED FOR ONE CLIENT! --> <EntitySync entitySyncId="<POS Terminal ID>" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" keepRemoveInfoHours="24" forPullOnly="Y"/> <EntitySyncIncludeGroup entitySyncId="<POS Terminal ID>" entityGroupId="5501"/> <!-- POS Push Scheduled Service --> <!-- <RecurrenceRule recurrenceRuleId="POSPUSH" untilDateTime="" frequency="MINUTELY" intervalNumber="5" countNumber="-1"/> <RecurrenceInfo recurrenceInfoId="POSPUSH" startDateTime="2000-01-01 00:00:00.000" recurrenceRuleId="POSPUSH" recurrenceCount="0"/> <RuntimeData runtimeDataId="POSPUSH"> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> <ofbiz-ser> <map-HashMap> <map-Entry> <map-Key> <std-String value="entitySyncId"/> </map-Key> <map-Value> <std-String value="POSPUSH"/> </map-Value> </map-Entry> </map-HashMap> </ofbiz-ser> ]]></runtimeInfo> </RuntimeData> <JobSandbox jobId="POSPUSH" jobName="Push POS Data" runtimeDataId="POSPUSH" runTime="2000-01-01 00:00:00.000" serviceName="runEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPUSH"/> --> <!-- POSPULL Scheduled Service --> <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" frequency="HOURLY" intervalNumber="2" countNumber="-1"/> <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 00:15:00.000" recurrenceRuleId="POSPULL" recurrenceCount="0"/> <RuntimeData runtimeDataId="POSPULL"> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> <ofbiz-ser> <map-HashMap> <map-Entry> <map-Key> <std-String value="entitySyncId"/> </map-Key> <map-Value> <std-String value="<POS Terminal ID>"/> </map-Value> </map-Entry> <map-Entry> <map-Key> <std-String value="remotePullAndReportEntitySyncDataName"/> </map-Key> <map-Value> <std-String value="remotePullAndReportEntitySyncDataRmi"/> </map-Value> </map-Entry> </map-HashMap> </ofbiz-ser> ]]></runtimeInfo> </RuntimeData> <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" serviceName="runPullEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPULL"/> </entity-engine-xml> ----- Original Message ----- From: "Ajey.bitin" <[hidden email]> To: [hidden email] Sent: Wednesday, August 6, 2008 10:52:42 PM (GMT-0700) America/Denver Subject: Re: Problems while PUSH and PULL entity sync process in POS Hi Vince, I'm also trying to setup POS completely and struggling around the PULL activity. I've configured POS for only POS terminals and one MCS. Here with my settings, PUSH is being called successfully but I'm not able to configure PULL in the system. I knew from the mailing list, you have experimented a lot in POS. At present my serviceengine.xml of POS Terminal is configured with this setting: <service-location name="main-rmi" location="rmi://server:1098/RMIDispatcher"/> <service-location name="main-http" location="http://server:8089/webtools/control/httpService"/> <service-location name="entity-sync-rmi" location="rmi://server:1098/RMIDispatcher"/> <service-location name="entity-sync-http" location="http://server:8089/webtools/control/httpService"/> <service-location name="rita-rmi" location="rmi://server:1098/RMIDispatcher"/> <service-location name="eedcc-test" location="http://server:8089/webtools/control/httpService"/> The serviceengine.xml of Server (MCS) is configured with this setting: <service-location name="main-rmi" location="rmi://localhost:1088/RMIDispatcher"/> <service-location name="main-http" location="http://localhost:8080/webtools/control/httpService"/> <service-location name="entity-sync-rmi" location="rmi://localhost:1088/RMIDispatcher"/> <service-location name="entity-sync-http" location="http://localhost:8080/webtools/control/httpService"/> <service-location name="rita-rmi" location="rmi://localhost:1088/RMIDispatcher"/> <service-location name="eedcc-test" location="http://localhost:8080/webtools/control/httpService"/> I've configured the PosSyncSettings.xml of POS Terminal with PUSH but I'm getting difficulty to configure PULL, like what kind of setting I need to do on both POS Terminal and Server(MCS) regarding PULL. How every POS Terminal can call PULL so that all inventory, returns and Promo kind of information will be updated on all POS Terminals. Any help is highly appreciated. Thanx in advance, Ajey Vince Clark wrote: > > > Pradeep > > Your settings looked fine in PosSyncSettings.xml. I have the impression > from your thread so far that you understand the setup when eliminating the > PSS and using the POS terminal to go directly to MCS. This is the setup we > have used as well so we're on the same page with that configuration. > > It can get a little tricky knowing what config to load on what server (POS > or MCS.) I have some notes at the top of my custom PosSyncSettings.xml > that I will send in a follow up message. Unfortunately I have to boot > another computer to get to them. But they go step by step on what to load > where. > > ----- Original Message ----- > From: "Jacques Le Roux" <[hidden email]> > To: [hidden email] > Sent: Monday, April 21, 2008 3:45:47 AM (GMT-0700) America/Denver > Subject: Re: Problems while PUSH and PULL entity sync process in POS > > > >> Hi Vince, >> >> Sorry I forgot to ask one importnt thing. The RMIIF environment variable >> is >> defined in startup script startofbiz.sh. But I'm using the windows >> environment to test it. Now in this case how can I set this RMIIF in our >> environment variable. > > Simply tranpose to Windows this is a param tpo pass to JVM : > -Djava.rmi.server.hostname=<set your IP address here>" > >> Also, will there be any difference in the contents of PosSyncSeetings.xml >> on >> PSS+POS System and MCS System as I'm calling same two services on both >> system. This i the place where I'm a bit confused. > > Are you using 2 different DBs on the PSS+POS System (one for each OFBiz > instance) ? Are you relaying through PSS when you send from > POS to MCS (this is the intended basic scheme, of course you can build > your own...) ? > > Jacques > >> -- >> With regards, >> S K Pradeep kumar >> > > > -- View this message in context: http://www.nabble.com/Problems-while-PUSH-and-PULL-entity-sync-process-in-POS-tp16801589p18864051.html Sent from the OFBiz - User mailing list archive at Nabble.com. |
Thanx Vince,
But can I use the HTTP service instead of RMI because earlier when I tried, I was getting certificate error while calling these RMI services. Please let me know if i can do that and how much it'll be different from the RMI approach. Regards, Ajey
|
I've never used anything but rmi-sync. I think the cert stuff has changed since I last configured sync so I would have to go thru the learning curve myself on how to deal with it. I think it is just an extra step you need to take to generate your own cert and is documented a bit on the wiki as well as in some older threads on the ML.
If you figure out http sync please post back to the ML with findings. ----- Original Message ----- From: "Ajey.bitin" <[hidden email]> To: [hidden email] Sent: Thursday, August 7, 2008 8:36:43 AM (GMT-0700) America/Denver Subject: Re: Problems while PUSH and PULL entity sync process in POS Thanx Vince, But can I use the HTTP service instead of RMI because earlier when I tried, I was getting certificate error while calling these RMI services. Please let me know if i can do that and how much it'll be different from the RMI approach. Regards, Ajey Vince Clark wrote: > > Ajey > > Not sure if it matters but in the serviceengine.xml file I only change the > enity-sync-rmi, not the others. > > Below is a PosSyncSettings.xml file that includes fairly detailed notes on > what to load where (POS vs. MCS) and in what order. Hope it helps. When I > modified this file it was the same approach you are taking, a POS terminal > and MCS with no per store servers. So it should be exactly what you are > trying to do. > > I would also suggest that as you are going thru the learning process use a > dev environment that you can wipe clean and start over many times if > necessary. You will need to get used to how synchronization is triggered > and it helps if you can clean out the sync settings on all machines (POS, > PSS, MCS) and start over. > > <?xml version="1.0" encoding="UTF-8"?> > <!-- > Licensed to the Apache Software Foundation (ASF) under one > or more contributor license agreements. See the NOTICE file > distributed with this work for additional information > regarding copyright ownership. The ASF licenses this file > to you under the Apache License, Version 2.0 (the > "License"); you may not use this file except in compliance > with the License. You may obtain a copy of the License at > > http://www.apache.org/licenses/LICENSE-2.0 > > Unless required by applicable law or agreed to in writing, > software distributed under the License is distributed on an > "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > KIND, either express or implied. See the License for the > specific language governing permissions and limitations > under the License. > > 2007-12-05 vclark Notes > EntiyGroup > EntityGroup and EntityGroupEntry records are only loaded on Master Central > Server (MCS). > When the "PULL" sync occurs those records are copied down to the POS > terminal. This > allows for changes to be made on MCS and propogate down to terminals. > Both sets of EntityGroup records (5501 and 5506) are reused across > terminals. No need > to have separate EntityGroup records for each terminal. > > EntitySync (PULL) > EntitySync record is loaded on MCS. > entitySyncId must be unique for each terminal so we use the POS terminal > ID. > > EntitySync (PUSH) > EntitySync record is loaded on POS terminal. > Can use the same enitySyncId since it is loaded on each terminal, not MCS. > > RecurrenceRule, RecurrenceInfo, RuntimeData > Both of these sets of records are loaded on the POS terminal. This > initiates > PUSH and PULL transfers and these are always initiated from the terminals, > not MCS. > > Step by Step Instructions > 1. Setup POS terminal with clean checkout from trunk > 2. In startofbiz.sh/bat set RMIIF to localhost (uncomment the line.) > 3. Create empty ofbiz database and populate with seed data (ant > run-install-seed). Note that for testing/learning you can load demo data > as well. For a production environment you will need to only load seed, > then do all of your organization specific setup such as accounting, > facilities, stores, etc. > 4. framework/service/config/serviceengine.xml - enity-sync-rmi set to MCS. > 5. Start POS terminal in standard mode (web interface) > 6. Load EntitySync record for PULL on MCS. > 7. Load XML on POS terminal to trigger PULL sync > 8. Load EntitySync PUSH on POS terminal. > 9. When pull is finished, load XML to trigger PUSH > 10. Shutdown OfBiz on POS terminal > 11. pos-containers.xml on POS client - set xui session id = > <facilityId-pos terminal number> ex. 10020-1. > 12. pos-containers.xml on POS client - set faclility ID = <facilityId) ex. > 10020. > > --> > <entity-engine-xml> > > <!-- MCS->POS Per Store Server to POS Terminal > This data is loaded on the Master Central Server --> > <EntityGroup entityGroupId="5501" entityGroupName="POS: Per Store Server > to POS Terminal"/> > <!-- these are used to update sync settings on the POS terminals from the > central server --> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.entity.group" applEnumId="ESIA_INCLUDE"/> > <!-- this is the general product information needed for pricing, > promotions, basic product info, etc --> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.product.product" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.product.price" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.product.promo" applEnumId="ESIA_INCLUDE"/> > <!-- org.ofbiz.product.category is needed for certain promotions, probably > won't be used much for category browsing in the POS --> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.product.category" applEnumId="ESIA_INCLUDE"/> > <!-- org.ofbiz.party.party may be needed for certain promotions --> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.pos.PosTerminal" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.product.storage" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.product.store" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.accounting.tax" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.security.login" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.security.securitygroup" > applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" > entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> > > <!-- POS->MCS Per Store Server to Central Server --> > <EntityGroup entityGroupId="5506" entityGroupName="POS: Per Store Server > to Central Server"/> > <!-- org.ofbiz.party.party may be needed for order related information, > like party roles or contact info etc --> > <EntityGroupEntry entityGroupId="5506" > entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" > entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> > <!-- all order and related information, including payment, etc info --> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.order" > applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" > entityOrPackage="org.ofbiz.accounting.invoice" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" > entityOrPackage="org.ofbiz.accounting.payment" applEnumId="ESIA_INCLUDE"/> > <!-- include inventory and issuance info --> > <EntityGroupEntry entityGroupId="5506" > entityOrPackage="org.ofbiz.shipment.issuance" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" > entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" > entityOrPackage="org.ofbiz.pos.PosTerminalLog" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" > entityOrPackage="org.ofbiz.pos.PosTerminalState" > applEnumId="ESIA_INCLUDE"/> > <!-- include POS transactions --> > <EntityGroupEntry entityGroupId="5506" > entityOrPackage="org.ofbiz.pos.PosTerminalInternTx" > applEnumId="ESIA_INCLUDE"/> > > > <!-- Some examples of EntitySync settings for pulling and pushing data > around --> > <!-- POS example meant to be used for pushing data from POS to MCS --> > <EntitySync entitySyncId="POSPUSH" runStatusId="ESR_NOT_STARTED" > syncSplitMillis="600000" targetServiceName="remoteStoreEntitySyncDataRmi" > keepRemoveInfoHours="24" forPushOnly="Y"/> > <EntitySyncIncludeGroup entitySyncId="POSPUSH" entityGroupId="5506"/> > > <!-- POS example meant to be used for pulling data from MCS to POS --> > <!-- NOTE: for pulling setup the EntitySync record lives on the server the > data is pulled from and should ONLY BE USED FOR ONE CLIENT! --> > <EntitySync entitySyncId="<POS Terminal ID>" runStatusId="ESR_NOT_STARTED" > syncSplitMillis="600000" > keepRemoveInfoHours="24" forPullOnly="Y"/> > <EntitySyncIncludeGroup entitySyncId="<POS Terminal ID>" > entityGroupId="5501"/> > > <!-- POS Push Scheduled Service --> > <!-- > <RecurrenceRule recurrenceRuleId="POSPUSH" untilDateTime="" > frequency="MINUTELY" intervalNumber="5" countNumber="-1"/> > <RecurrenceInfo recurrenceInfoId="POSPUSH" startDateTime="2000-01-01 > 00:00:00.000" recurrenceRuleId="POSPUSH" recurrenceCount="0"/> > <RuntimeData runtimeDataId="POSPUSH"> > <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> > <ofbiz-ser> > <map-HashMap> > <map-Entry> > <map-Key> > <std-String value="entitySyncId"/> > </map-Key> > <map-Value> > <std-String value="POSPUSH"/> > </map-Value> > </map-Entry> > </map-HashMap> > </ofbiz-ser> > ]]></runtimeInfo> > </RuntimeData> > <JobSandbox jobId="POSPUSH" jobName="Push POS Data" > runtimeDataId="POSPUSH" runTime="2000-01-01 00:00:00.000" > serviceName="runEntitySync" poolId="pool" runAsUser="system" > recurrenceInfoId="POSPUSH"/> > --> > > <!-- POSPULL Scheduled Service --> > <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" > frequency="HOURLY" intervalNumber="2" countNumber="-1"/> > <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 > 00:15:00.000" recurrenceRuleId="POSPULL" recurrenceCount="0"/> > <RuntimeData runtimeDataId="POSPULL"> > <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> > <ofbiz-ser> > <map-HashMap> > <map-Entry> > <map-Key> > <std-String value="entitySyncId"/> > </map-Key> > <map-Value> > <std-String value="<POS Terminal ID>"/> > </map-Value> > </map-Entry> > <map-Entry> > <map-Key> > <std-String value="remotePullAndReportEntitySyncDataName"/> > </map-Key> > <map-Value> > <std-String value="remotePullAndReportEntitySyncDataRmi"/> > </map-Value> > </map-Entry> > </map-HashMap> > </ofbiz-ser> > ]]></runtimeInfo> > </RuntimeData> > <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" > runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" > serviceName="runPullEntitySync" poolId="pool" runAsUser="system" > recurrenceInfoId="POSPULL"/> > > </entity-engine-xml> > > > ----- Original Message ----- > From: "Ajey.bitin" <[hidden email]> > To: [hidden email] > Sent: Wednesday, August 6, 2008 10:52:42 PM (GMT-0700) America/Denver > Subject: Re: Problems while PUSH and PULL entity sync process in POS > > > Hi Vince, > > I'm also trying to setup POS completely and struggling around the PULL > activity. I've configured POS for only POS terminals and one MCS. Here > with > my settings, PUSH is being called successfully but I'm not able to > configure > PULL in the system. I knew from the mailing list, you have experimented a > lot in POS. > > At present my serviceengine.xml of POS Terminal is configured with this > setting: > <service-location name="main-rmi" > location="rmi://server:1098/RMIDispatcher"/> > <service-location name="main-http" > location="http://server:8089/webtools/control/httpService"/> > > <service-location name="entity-sync-rmi" > location="rmi://server:1098/RMIDispatcher"/> > <service-location name="entity-sync-http" > location="http://server:8089/webtools/control/httpService"/> > > <service-location name="rita-rmi" > location="rmi://server:1098/RMIDispatcher"/> > <service-location name="eedcc-test" > location="http://server:8089/webtools/control/httpService"/> > > The serviceengine.xml of Server (MCS) is configured with this setting: > <service-location name="main-rmi" > location="rmi://localhost:1088/RMIDispatcher"/> > <service-location name="main-http" > location="http://localhost:8080/webtools/control/httpService"/> > > <service-location name="entity-sync-rmi" > location="rmi://localhost:1088/RMIDispatcher"/> > <service-location name="entity-sync-http" > location="http://localhost:8080/webtools/control/httpService"/> > > <service-location name="rita-rmi" > location="rmi://localhost:1088/RMIDispatcher"/> > <service-location name="eedcc-test" > location="http://localhost:8080/webtools/control/httpService"/> > > I've configured the PosSyncSettings.xml of POS Terminal with PUSH but I'm > getting difficulty to configure PULL, like what kind of setting I need to > do > on both POS Terminal and Server(MCS) regarding PULL. How every POS > Terminal > can call PULL so that all inventory, returns and Promo kind of information > will be updated on all POS Terminals. > > Any help is highly appreciated. > > Thanx in advance, > > Ajey > > > > > Vince Clark wrote: >> >> >> Pradeep >> >> Your settings looked fine in PosSyncSettings.xml. I have the impression >> from your thread so far that you understand the setup when eliminating >> the >> PSS and using the POS terminal to go directly to MCS. This is the setup >> we >> have used as well so we're on the same page with that configuration. >> >> It can get a little tricky knowing what config to load on what server >> (POS >> or MCS.) I have some notes at the top of my custom PosSyncSettings.xml >> that I will send in a follow up message. Unfortunately I have to boot >> another computer to get to them. But they go step by step on what to load >> where. >> >> ----- Original Message ----- >> From: "Jacques Le Roux" <[hidden email]> >> To: [hidden email] >> Sent: Monday, April 21, 2008 3:45:47 AM (GMT-0700) America/Denver >> Subject: Re: Problems while PUSH and PULL entity sync process in POS >> >> >> >>> Hi Vince, >>> >>> Sorry I forgot to ask one importnt thing. The RMIIF environment variable >>> is >>> defined in startup script startofbiz.sh. But I'm using the windows >>> environment to test it. Now in this case how can I set this RMIIF in our >>> environment variable. >> >> Simply tranpose to Windows this is a param tpo pass to JVM : >> -Djava.rmi.server.hostname=<set your IP address here>" >> >>> Also, will there be any difference in the contents of >>> PosSyncSeetings.xml >>> on >>> PSS+POS System and MCS System as I'm calling same two services on both >>> system. This i the place where I'm a bit confused. >> >> Are you using 2 different DBs on the PSS+POS System (one for each OFBiz >> instance) ? Are you relaying through PSS when you send from >> POS to MCS (this is the intended basic scheme, of course you can build >> your own...) ? >> >> Jacques >> >>> -- >>> With regards, >>> S K Pradeep kumar >>> >> >> >> > > -- > View this message in context: > http://www.nabble.com/Problems-while-PUSH-and-PULL-entity-sync-process-in-POS-tp16801589p18864051.html > Sent from the OFBiz - User mailing list archive at Nabble.com. > > > -- View this message in context: http://www.nabble.com/Problems-while-PUSH-and-PULL-entity-sync-process-in-POS-tp16801589p18871966.html Sent from the OFBiz - User mailing list archive at Nabble.com. |
Sure Vince, I'll definitely do that.
|
In reply to this post by Vince Clark
Vince could you put this in the wiki
TIA. Vince M. Clark sent the following on 8/7/2008 6:27 AM: > Ajey > > Not sure if it matters but in the serviceengine.xml file I only change the enity-sync-rmi, not the others. > > Below is a PosSyncSettings.xml file that includes fairly detailed notes on what to load where (POS vs. MCS) and in what order. Hope it helps. When I modified this file it was the same approach you are taking, a POS terminal and MCS with no per store servers. So it should be exactly what you are trying to do. > > I would also suggest that as you are going thru the learning process use a dev environment that you can wipe clean and start over many times if necessary. You will need to get used to how synchronization is triggered and it helps if you can clean out the sync settings on all machines (POS, PSS, MCS) and start over. > > <?xml version="1.0" encoding="UTF-8"?> > <!-- > Licensed to the Apache Software Foundation (ASF) under one > or more contributor license agreements. See the NOTICE file > distributed with this work for additional information > regarding copyright ownership. The ASF licenses this file > to you under the Apache License, Version 2.0 (the > "License"); you may not use this file except in compliance > with the License. You may obtain a copy of the License at > > http://www.apache.org/licenses/LICENSE-2.0 > > Unless required by applicable law or agreed to in writing, > software distributed under the License is distributed on an > "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > KIND, either express or implied. See the License for the > specific language governing permissions and limitations > under the License. > > 2007-12-05 vclark Notes > EntiyGroup > EntityGroup and EntityGroupEntry records are only loaded on Master Central Server (MCS). > When the "PULL" sync occurs those records are copied down to the POS terminal. This > allows for changes to be made on MCS and propogate down to terminals. > Both sets of EntityGroup records (5501 and 5506) are reused across terminals. No need > to have separate EntityGroup records for each terminal. > > EntitySync (PULL) > EntitySync record is loaded on MCS. > entitySyncId must be unique for each terminal so we use the POS terminal ID. > > EntitySync (PUSH) > EntitySync record is loaded on POS terminal. > Can use the same enitySyncId since it is loaded on each terminal, not MCS. > > RecurrenceRule, RecurrenceInfo, RuntimeData > Both of these sets of records are loaded on the POS terminal. This initiates > PUSH and PULL transfers and these are always initiated from the terminals, not MCS. > > Step by Step Instructions > 1. Setup POS terminal with clean checkout from trunk > 2. In startofbiz.sh/bat set RMIIF to localhost (uncomment the line.) > 3. Create empty ofbiz database and populate with seed data (ant run-install-seed). Note that for testing/learning you can load demo data as well. For a production environment you will need to only load seed, then do all of your organization specific setup such as accounting, facilities, stores, etc. > 4. framework/service/config/serviceengine.xml - enity-sync-rmi set to MCS. > 5. Start POS terminal in standard mode (web interface) > 6. Load EntitySync record for PULL on MCS. > 7. Load XML on POS terminal to trigger PULL sync > 8. Load EntitySync PUSH on POS terminal. > 9. When pull is finished, load XML to trigger PUSH > 10. Shutdown OfBiz on POS terminal > 11. pos-containers.xml on POS client - set xui session id = <facilityId-pos terminal number> ex. 10020-1. > 12. pos-containers.xml on POS client - set faclility ID = <facilityId) ex. 10020. > > --> > <entity-engine-xml> > > <!-- MCS->POS Per Store Server to POS Terminal > This data is loaded on the Master Central Server --> > <EntityGroup entityGroupId="5501" entityGroupName="POS: Per Store Server to POS Terminal"/> > <!-- these are used to update sync settings on the POS terminals from the central server --> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.entity.group" applEnumId="ESIA_INCLUDE"/> > <!-- this is the general product information needed for pricing, promotions, basic product info, etc --> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.product" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.price" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.promo" applEnumId="ESIA_INCLUDE"/> > <!-- org.ofbiz.product.category is needed for certain promotions, probably won't be used much for category browsing in the POS --> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.category" applEnumId="ESIA_INCLUDE"/> > <!-- org.ofbiz.party.party may be needed for certain promotions --> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.pos.PosTerminal" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.storage" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.store" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.accounting.tax" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.login" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.securitygroup" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> > > <!-- POS->MCS Per Store Server to Central Server --> > <EntityGroup entityGroupId="5506" entityGroupName="POS: Per Store Server to Central Server"/> > <!-- org.ofbiz.party.party may be needed for order related information, like party roles or contact info etc --> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> > <!-- all order and related information, including payment, etc info --> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.order" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.invoice" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.payment" applEnumId="ESIA_INCLUDE"/> > <!-- include inventory and issuance info --> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.shipment.issuance" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalLog" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalState" applEnumId="ESIA_INCLUDE"/> > <!-- include POS transactions --> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalInternTx" applEnumId="ESIA_INCLUDE"/> > > > <!-- Some examples of EntitySync settings for pulling and pushing data around --> > <!-- POS example meant to be used for pushing data from POS to MCS --> > <EntitySync entitySyncId="POSPUSH" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" targetServiceName="remoteStoreEntitySyncDataRmi" > keepRemoveInfoHours="24" forPushOnly="Y"/> > <EntitySyncIncludeGroup entitySyncId="POSPUSH" entityGroupId="5506"/> > > <!-- POS example meant to be used for pulling data from MCS to POS --> > <!-- NOTE: for pulling setup the EntitySync record lives on the server the data is pulled from and should ONLY BE USED FOR ONE CLIENT! --> > <EntitySync entitySyncId="<POS Terminal ID>" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" > keepRemoveInfoHours="24" forPullOnly="Y"/> > <EntitySyncIncludeGroup entitySyncId="<POS Terminal ID>" entityGroupId="5501"/> > > <!-- POS Push Scheduled Service --> > <!-- > <RecurrenceRule recurrenceRuleId="POSPUSH" untilDateTime="" frequency="MINUTELY" intervalNumber="5" countNumber="-1"/> > <RecurrenceInfo recurrenceInfoId="POSPUSH" startDateTime="2000-01-01 00:00:00.000" recurrenceRuleId="POSPUSH" recurrenceCount="0"/> > <RuntimeData runtimeDataId="POSPUSH"> > <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> > <ofbiz-ser> > <map-HashMap> > <map-Entry> > <map-Key> > <std-String value="entitySyncId"/> > </map-Key> > <map-Value> > <std-String value="POSPUSH"/> > </map-Value> > </map-Entry> > </map-HashMap> > </ofbiz-ser> > ]]></runtimeInfo> > </RuntimeData> > <JobSandbox jobId="POSPUSH" jobName="Push POS Data" runtimeDataId="POSPUSH" runTime="2000-01-01 00:00:00.000" serviceName="runEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPUSH"/> > --> > > <!-- POSPULL Scheduled Service --> > <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" frequency="HOURLY" intervalNumber="2" countNumber="-1"/> > <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 00:15:00.000" recurrenceRuleId="POSPULL" recurrenceCount="0"/> > <RuntimeData runtimeDataId="POSPULL"> > <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> > <ofbiz-ser> > <map-HashMap> > <map-Entry> > <map-Key> > <std-String value="entitySyncId"/> > </map-Key> > <map-Value> > <std-String value="<POS Terminal ID>"/> > </map-Value> > </map-Entry> > <map-Entry> > <map-Key> > <std-String value="remotePullAndReportEntitySyncDataName"/> > </map-Key> > <map-Value> > <std-String value="remotePullAndReportEntitySyncDataRmi"/> > </map-Value> > </map-Entry> > </map-HashMap> > </ofbiz-ser> > ]]></runtimeInfo> > </RuntimeData> > <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" serviceName="runPullEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPULL"/> > > </entity-engine-xml> > > > ----- Original Message ----- > From: "Ajey.bitin" <[hidden email]> > To: [hidden email] > Sent: Wednesday, August 6, 2008 10:52:42 PM (GMT-0700) America/Denver > Subject: Re: Problems while PUSH and PULL entity sync process in POS > > > Hi Vince, > > I'm also trying to setup POS completely and struggling around the PULL > activity. I've configured POS for only POS terminals and one MCS. Here with > my settings, PUSH is being called successfully but I'm not able to configure > PULL in the system. I knew from the mailing list, you have experimented a > lot in POS. > > At present my serviceengine.xml of POS Terminal is configured with this > setting: > <service-location name="main-rmi" > location="rmi://server:1098/RMIDispatcher"/> > <service-location name="main-http" > location="http://server:8089/webtools/control/httpService"/> > > <service-location name="entity-sync-rmi" > location="rmi://server:1098/RMIDispatcher"/> > <service-location name="entity-sync-http" > location="http://server:8089/webtools/control/httpService"/> > > <service-location name="rita-rmi" > location="rmi://server:1098/RMIDispatcher"/> > <service-location name="eedcc-test" > location="http://server:8089/webtools/control/httpService"/> > > The serviceengine.xml of Server (MCS) is configured with this setting: > <service-location name="main-rmi" > location="rmi://localhost:1088/RMIDispatcher"/> > <service-location name="main-http" > location="http://localhost:8080/webtools/control/httpService"/> > > <service-location name="entity-sync-rmi" > location="rmi://localhost:1088/RMIDispatcher"/> > <service-location name="entity-sync-http" > location="http://localhost:8080/webtools/control/httpService"/> > > <service-location name="rita-rmi" > location="rmi://localhost:1088/RMIDispatcher"/> > <service-location name="eedcc-test" > location="http://localhost:8080/webtools/control/httpService"/> > > I've configured the PosSyncSettings.xml of POS Terminal with PUSH but I'm > getting difficulty to configure PULL, like what kind of setting I need to do > on both POS Terminal and Server(MCS) regarding PULL. How every POS Terminal > can call PULL so that all inventory, returns and Promo kind of information > will be updated on all POS Terminals. > > Any help is highly appreciated. > > Thanx in advance, > > Ajey > > > > > Vince Clark wrote: >> >> Pradeep >> >> Your settings looked fine in PosSyncSettings.xml. I have the impression >> from your thread so far that you understand the setup when eliminating the >> PSS and using the POS terminal to go directly to MCS. This is the setup we >> have used as well so we're on the same page with that configuration. >> >> It can get a little tricky knowing what config to load on what server (POS >> or MCS.) I have some notes at the top of my custom PosSyncSettings.xml >> that I will send in a follow up message. Unfortunately I have to boot >> another computer to get to them. But they go step by step on what to load >> where. >> >> ----- Original Message ----- >> From: "Jacques Le Roux" <[hidden email]> >> To: [hidden email] >> Sent: Monday, April 21, 2008 3:45:47 AM (GMT-0700) America/Denver >> Subject: Re: Problems while PUSH and PULL entity sync process in POS >> >> >> >>> Hi Vince, >>> >>> Sorry I forgot to ask one importnt thing. The RMIIF environment variable >>> is >>> defined in startup script startofbiz.sh. But I'm using the windows >>> environment to test it. Now in this case how can I set this RMIIF in our >>> environment variable. >> Simply tranpose to Windows this is a param tpo pass to JVM : >> -Djava.rmi.server.hostname=<set your IP address here>" >> >>> Also, will there be any difference in the contents of PosSyncSeetings.xml >>> on >>> PSS+POS System and MCS System as I'm calling same two services on both >>> system. This i the place where I'm a bit confused. >> Are you using 2 different DBs on the PSS+POS System (one for each OFBiz >> instance) ? Are you relaying through PSS when you send from >> POS to MCS (this is the intended basic scheme, of course you can build >> your own...) ? >> >> Jacques >> >>> -- >>> With regards, >>> S K Pradeep kumar >>> >> >> > |
Sure. Any suggestion on where I should put it?
----- Original Message ----- From: "BJ Freeman" <[hidden email]> To: [hidden email] Sent: Thursday, August 7, 2008 10:09:06 AM (GMT-0700) America/Denver Subject: Re: Problems while PUSH and PULL entity sync process in POS Vince could you put this in the wiki TIA. Vince M. Clark sent the following on 8/7/2008 6:27 AM: > Ajey > > Not sure if it matters but in the serviceengine.xml file I only change the enity-sync-rmi, not the others. > > Below is a PosSyncSettings.xml file that includes fairly detailed notes on what to load where (POS vs. MCS) and in what order. Hope it helps. When I modified this file it was the same approach you are taking, a POS terminal and MCS with no per store servers. So it should be exactly what you are trying to do. > > I would also suggest that as you are going thru the learning process use a dev environment that you can wipe clean and start over many times if necessary. You will need to get used to how synchronization is triggered and it helps if you can clean out the sync settings on all machines (POS, PSS, MCS) and start over. > > <?xml version="1.0" encoding="UTF-8"?> > <!-- > Licensed to the Apache Software Foundation (ASF) under one > or more contributor license agreements. See the NOTICE file > distributed with this work for additional information > regarding copyright ownership. The ASF licenses this file > to you under the Apache License, Version 2.0 (the > "License"); you may not use this file except in compliance > with the License. You may obtain a copy of the License at > > http://www.apache.org/licenses/LICENSE-2.0 > > Unless required by applicable law or agreed to in writing, > software distributed under the License is distributed on an > "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > KIND, either express or implied. See the License for the > specific language governing permissions and limitations > under the License. > > 2007-12-05 vclark Notes > EntiyGroup > EntityGroup and EntityGroupEntry records are only loaded on Master Central Server (MCS). > When the "PULL" sync occurs those records are copied down to the POS terminal. This > allows for changes to be made on MCS and propogate down to terminals. > Both sets of EntityGroup records (5501 and 5506) are reused across terminals. No need > to have separate EntityGroup records for each terminal. > > EntitySync (PULL) > EntitySync record is loaded on MCS. > entitySyncId must be unique for each terminal so we use the POS terminal ID. > > EntitySync (PUSH) > EntitySync record is loaded on POS terminal. > Can use the same enitySyncId since it is loaded on each terminal, not MCS. > > RecurrenceRule, RecurrenceInfo, RuntimeData > Both of these sets of records are loaded on the POS terminal. This initiates > PUSH and PULL transfers and these are always initiated from the terminals, not MCS. > > Step by Step Instructions > 1. Setup POS terminal with clean checkout from trunk > 2. In startofbiz.sh/bat set RMIIF to localhost (uncomment the line.) > 3. Create empty ofbiz database and populate with seed data (ant run-install-seed). Note that for testing/learning you can load demo data as well. For a production environment you will need to only load seed, then do all of your organization specific setup such as accounting, facilities, stores, etc. > 4. framework/service/config/serviceengine.xml - enity-sync-rmi set to MCS. > 5. Start POS terminal in standard mode (web interface) > 6. Load EntitySync record for PULL on MCS. > 7. Load XML on POS terminal to trigger PULL sync > 8. Load EntitySync PUSH on POS terminal. > 9. When pull is finished, load XML to trigger PUSH > 10. Shutdown OfBiz on POS terminal > 11. pos-containers.xml on POS client - set xui session id = <facilityId-pos terminal number> ex. 10020-1. > 12. pos-containers.xml on POS client - set faclility ID = <facilityId) ex. 10020. > > --> > <entity-engine-xml> > > <!-- MCS->POS Per Store Server to POS Terminal > This data is loaded on the Master Central Server --> > <EntityGroup entityGroupId="5501" entityGroupName="POS: Per Store Server to POS Terminal"/> > <!-- these are used to update sync settings on the POS terminals from the central server --> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.entity.group" applEnumId="ESIA_INCLUDE"/> > <!-- this is the general product information needed for pricing, promotions, basic product info, etc --> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.product" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.price" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.promo" applEnumId="ESIA_INCLUDE"/> > <!-- org.ofbiz.product.category is needed for certain promotions, probably won't be used much for category browsing in the POS --> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.category" applEnumId="ESIA_INCLUDE"/> > <!-- org.ofbiz.party.party may be needed for certain promotions --> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.pos.PosTerminal" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.storage" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.store" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.accounting.tax" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.login" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.securitygroup" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> > > <!-- POS->MCS Per Store Server to Central Server --> > <EntityGroup entityGroupId="5506" entityGroupName="POS: Per Store Server to Central Server"/> > <!-- org.ofbiz.party.party may be needed for order related information, like party roles or contact info etc --> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> > <!-- all order and related information, including payment, etc info --> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.order" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.invoice" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.payment" applEnumId="ESIA_INCLUDE"/> > <!-- include inventory and issuance info --> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.shipment.issuance" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalLog" applEnumId="ESIA_INCLUDE"/> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalState" applEnumId="ESIA_INCLUDE"/> > <!-- include POS transactions --> > <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalInternTx" applEnumId="ESIA_INCLUDE"/> > > > <!-- Some examples of EntitySync settings for pulling and pushing data around --> > <!-- POS example meant to be used for pushing data from POS to MCS --> > <EntitySync entitySyncId="POSPUSH" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" targetServiceName="remoteStoreEntitySyncDataRmi" > keepRemoveInfoHours="24" forPushOnly="Y"/> > <EntitySyncIncludeGroup entitySyncId="POSPUSH" entityGroupId="5506"/> > > <!-- POS example meant to be used for pulling data from MCS to POS --> > <!-- NOTE: for pulling setup the EntitySync record lives on the server the data is pulled from and should ONLY BE USED FOR ONE CLIENT! --> > <EntitySync entitySyncId="<POS Terminal ID>" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" > keepRemoveInfoHours="24" forPullOnly="Y"/> > <EntitySyncIncludeGroup entitySyncId="<POS Terminal ID>" entityGroupId="5501"/> > > <!-- POS Push Scheduled Service --> > <!-- > <RecurrenceRule recurrenceRuleId="POSPUSH" untilDateTime="" frequency="MINUTELY" intervalNumber="5" countNumber="-1"/> > <RecurrenceInfo recurrenceInfoId="POSPUSH" startDateTime="2000-01-01 00:00:00.000" recurrenceRuleId="POSPUSH" recurrenceCount="0"/> > <RuntimeData runtimeDataId="POSPUSH"> > <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> > <ofbiz-ser> > <map-HashMap> > <map-Entry> > <map-Key> > <std-String value="entitySyncId"/> > </map-Key> > <map-Value> > <std-String value="POSPUSH"/> > </map-Value> > </map-Entry> > </map-HashMap> > </ofbiz-ser> > ]]></runtimeInfo> > </RuntimeData> > <JobSandbox jobId="POSPUSH" jobName="Push POS Data" runtimeDataId="POSPUSH" runTime="2000-01-01 00:00:00.000" serviceName="runEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPUSH"/> > --> > > <!-- POSPULL Scheduled Service --> > <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" frequency="HOURLY" intervalNumber="2" countNumber="-1"/> > <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 00:15:00.000" recurrenceRuleId="POSPULL" recurrenceCount="0"/> > <RuntimeData runtimeDataId="POSPULL"> > <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> > <ofbiz-ser> > <map-HashMap> > <map-Entry> > <map-Key> > <std-String value="entitySyncId"/> > </map-Key> > <map-Value> > <std-String value="<POS Terminal ID>"/> > </map-Value> > </map-Entry> > <map-Entry> > <map-Key> > <std-String value="remotePullAndReportEntitySyncDataName"/> > </map-Key> > <map-Value> > <std-String value="remotePullAndReportEntitySyncDataRmi"/> > </map-Value> > </map-Entry> > </map-HashMap> > </ofbiz-ser> > ]]></runtimeInfo> > </RuntimeData> > <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" serviceName="runPullEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPULL"/> > > </entity-engine-xml> > > > ----- Original Message ----- > From: "Ajey.bitin" <[hidden email]> > To: [hidden email] > Sent: Wednesday, August 6, 2008 10:52:42 PM (GMT-0700) America/Denver > Subject: Re: Problems while PUSH and PULL entity sync process in POS > > > Hi Vince, > > I'm also trying to setup POS completely and struggling around the PULL > activity. I've configured POS for only POS terminals and one MCS. Here with > my settings, PUSH is being called successfully but I'm not able to configure > PULL in the system. I knew from the mailing list, you have experimented a > lot in POS. > > At present my serviceengine.xml of POS Terminal is configured with this > setting: > <service-location name="main-rmi" > location="rmi://server:1098/RMIDispatcher"/> > <service-location name="main-http" > location="http://server:8089/webtools/control/httpService"/> > > <service-location name="entity-sync-rmi" > location="rmi://server:1098/RMIDispatcher"/> > <service-location name="entity-sync-http" > location="http://server:8089/webtools/control/httpService"/> > > <service-location name="rita-rmi" > location="rmi://server:1098/RMIDispatcher"/> > <service-location name="eedcc-test" > location="http://server:8089/webtools/control/httpService"/> > > The serviceengine.xml of Server (MCS) is configured with this setting: > <service-location name="main-rmi" > location="rmi://localhost:1088/RMIDispatcher"/> > <service-location name="main-http" > location="http://localhost:8080/webtools/control/httpService"/> > > <service-location name="entity-sync-rmi" > location="rmi://localhost:1088/RMIDispatcher"/> > <service-location name="entity-sync-http" > location="http://localhost:8080/webtools/control/httpService"/> > > <service-location name="rita-rmi" > location="rmi://localhost:1088/RMIDispatcher"/> > <service-location name="eedcc-test" > location="http://localhost:8080/webtools/control/httpService"/> > > I've configured the PosSyncSettings.xml of POS Terminal with PUSH but I'm > getting difficulty to configure PULL, like what kind of setting I need to do > on both POS Terminal and Server(MCS) regarding PULL. How every POS Terminal > can call PULL so that all inventory, returns and Promo kind of information > will be updated on all POS Terminals. > > Any help is highly appreciated. > > Thanx in advance, > > Ajey > > > > > Vince Clark wrote: >> >> Pradeep >> >> Your settings looked fine in PosSyncSettings.xml. I have the impression >> from your thread so far that you understand the setup when eliminating the >> PSS and using the POS terminal to go directly to MCS. This is the setup we >> have used as well so we're on the same page with that configuration. >> >> It can get a little tricky knowing what config to load on what server (POS >> or MCS.) I have some notes at the top of my custom PosSyncSettings.xml >> that I will send in a follow up message. Unfortunately I have to boot >> another computer to get to them. But they go step by step on what to load >> where. >> >> ----- Original Message ----- >> From: "Jacques Le Roux" <[hidden email]> >> To: [hidden email] >> Sent: Monday, April 21, 2008 3:45:47 AM (GMT-0700) America/Denver >> Subject: Re: Problems while PUSH and PULL entity sync process in POS >> >> >> >>> Hi Vince, >>> >>> Sorry I forgot to ask one importnt thing. The RMIIF environment variable >>> is >>> defined in startup script startofbiz.sh. But I'm using the windows >>> environment to test it. Now in this case how can I set this RMIIF in our >>> environment variable. >> Simply tranpose to Windows this is a param tpo pass to JVM : >> -Djava.rmi.server.hostname=<set your IP address here>" >> >>> Also, will there be any difference in the contents of PosSyncSeetings.xml >>> on >>> PSS+POS System and MCS System as I'm calling same two services on both >>> system. This i the place where I'm a bit confused. >> Are you using 2 different DBs on the PSS+POS System (one for each OFBiz >> instance) ? Are you relaying through PSS when you send from >> POS to MCS (this is the intended basic scheme, of course you can build >> your own...) ? >> >> Jacques >> >>> -- >>> With regards, >>> S K Pradeep kumar >>> >> >> > |
Administrator
|
Vince,
Please put in a new page under the POS page http://docs.ofbiz.org/display/OFBIZ/POS+System Thanks Jacques From: "Vince M. Clark" <[hidden email]> > Sure. Any suggestion on where I should put it? > > ----- Original Message ----- > From: "BJ Freeman" <[hidden email]> > To: [hidden email] > Sent: Thursday, August 7, 2008 10:09:06 AM (GMT-0700) America/Denver > Subject: Re: Problems while PUSH and PULL entity sync process in POS > > Vince could you put this in the wiki > TIA. > > > Vince M. Clark sent the following on 8/7/2008 6:27 AM: >> Ajey >> >> Not sure if it matters but in the serviceengine.xml file I only change the enity-sync-rmi, not the others. >> >> Below is a PosSyncSettings.xml file that includes fairly detailed notes on what to load where (POS vs. MCS) and in what order. >> Hope it helps. When I modified this file it was the same approach you are taking, a POS terminal and MCS with no per store >> servers. So it should be exactly what you are trying to do. >> >> I would also suggest that as you are going thru the learning process use a dev environment that you can wipe clean and start over >> many times if necessary. You will need to get used to how synchronization is triggered and it helps if you can clean out the sync >> settings on all machines (POS, PSS, MCS) and start over. >> >> <?xml version="1.0" encoding="UTF-8"?> >> <!-- >> Licensed to the Apache Software Foundation (ASF) under one >> or more contributor license agreements. See the NOTICE file >> distributed with this work for additional information >> regarding copyright ownership. The ASF licenses this file >> to you under the Apache License, Version 2.0 (the >> "License"); you may not use this file except in compliance >> with the License. You may obtain a copy of the License at >> >> http://www.apache.org/licenses/LICENSE-2.0 >> >> Unless required by applicable law or agreed to in writing, >> software distributed under the License is distributed on an >> "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> KIND, either express or implied. See the License for the >> specific language governing permissions and limitations >> under the License. >> >> 2007-12-05 vclark Notes >> EntiyGroup >> EntityGroup and EntityGroupEntry records are only loaded on Master Central Server (MCS). >> When the "PULL" sync occurs those records are copied down to the POS terminal. This >> allows for changes to be made on MCS and propogate down to terminals. >> Both sets of EntityGroup records (5501 and 5506) are reused across terminals. No need >> to have separate EntityGroup records for each terminal. >> >> EntitySync (PULL) >> EntitySync record is loaded on MCS. >> entitySyncId must be unique for each terminal so we use the POS terminal ID. >> >> EntitySync (PUSH) >> EntitySync record is loaded on POS terminal. >> Can use the same enitySyncId since it is loaded on each terminal, not MCS. >> >> RecurrenceRule, RecurrenceInfo, RuntimeData >> Both of these sets of records are loaded on the POS terminal. This initiates >> PUSH and PULL transfers and these are always initiated from the terminals, not MCS. >> >> Step by Step Instructions >> 1. Setup POS terminal with clean checkout from trunk >> 2. In startofbiz.sh/bat set RMIIF to localhost (uncomment the line.) >> 3. Create empty ofbiz database and populate with seed data (ant run-install-seed). Note that for testing/learning you can load >> demo data as well. For a production environment you will need to only load seed, then do all of your organization specific setup >> such as accounting, facilities, stores, etc. >> 4. framework/service/config/serviceengine.xml - enity-sync-rmi set to MCS. >> 5. Start POS terminal in standard mode (web interface) >> 6. Load EntitySync record for PULL on MCS. >> 7. Load XML on POS terminal to trigger PULL sync >> 8. Load EntitySync PUSH on POS terminal. >> 9. When pull is finished, load XML to trigger PUSH >> 10. Shutdown OfBiz on POS terminal >> 11. pos-containers.xml on POS client - set xui session id = <facilityId-pos terminal number> ex. 10020-1. >> 12. pos-containers.xml on POS client - set faclility ID = <facilityId) ex. 10020. >> >> --> >> <entity-engine-xml> >> >> <!-- MCS->POS Per Store Server to POS Terminal >> This data is loaded on the Master Central Server --> >> <EntityGroup entityGroupId="5501" entityGroupName="POS: Per Store Server to POS Terminal"/> >> <!-- these are used to update sync settings on the POS terminals from the central server --> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.entity.group" applEnumId="ESIA_INCLUDE"/> >> <!-- this is the general product information needed for pricing, promotions, basic product info, etc --> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.product" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.price" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.promo" applEnumId="ESIA_INCLUDE"/> >> <!-- org.ofbiz.product.category is needed for certain promotions, probably won't be used much for category browsing in the >> POS --> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.category" applEnumId="ESIA_INCLUDE"/> >> <!-- org.ofbiz.party.party may be needed for certain promotions --> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.pos.PosTerminal" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.storage" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.store" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.accounting.tax" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.login" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.securitygroup" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> >> >> <!-- POS->MCS Per Store Server to Central Server --> >> <EntityGroup entityGroupId="5506" entityGroupName="POS: Per Store Server to Central Server"/> >> <!-- org.ofbiz.party.party may be needed for order related information, like party roles or contact info etc --> >> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> >> <!-- all order and related information, including payment, etc info --> >> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.order" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.invoice" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.payment" applEnumId="ESIA_INCLUDE"/> >> <!-- include inventory and issuance info --> >> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.shipment.issuance" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalLog" applEnumId="ESIA_INCLUDE"/> >> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalState" applEnumId="ESIA_INCLUDE"/> >> <!-- include POS transactions --> >> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalInternTx" applEnumId="ESIA_INCLUDE"/> >> >> >> <!-- Some examples of EntitySync settings for pulling and pushing data around --> >> <!-- POS example meant to be used for pushing data from POS to MCS --> >> <EntitySync entitySyncId="POSPUSH" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" >> targetServiceName="remoteStoreEntitySyncDataRmi" >> keepRemoveInfoHours="24" forPushOnly="Y"/> >> <EntitySyncIncludeGroup entitySyncId="POSPUSH" entityGroupId="5506"/> >> >> <!-- POS example meant to be used for pulling data from MCS to POS --> >> <!-- NOTE: for pulling setup the EntitySync record lives on the server the data is pulled from and should ONLY BE USED FOR ONE >> CLIENT! --> >> <EntitySync entitySyncId="<POS Terminal ID>" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" >> keepRemoveInfoHours="24" forPullOnly="Y"/> >> <EntitySyncIncludeGroup entitySyncId="<POS Terminal ID>" entityGroupId="5501"/> >> >> <!-- POS Push Scheduled Service --> >> <!-- >> <RecurrenceRule recurrenceRuleId="POSPUSH" untilDateTime="" frequency="MINUTELY" intervalNumber="5" countNumber="-1"/> >> <RecurrenceInfo recurrenceInfoId="POSPUSH" startDateTime="2000-01-01 00:00:00.000" recurrenceRuleId="POSPUSH" >> recurrenceCount="0"/> >> <RuntimeData runtimeDataId="POSPUSH"> >> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> >> <ofbiz-ser> >> <map-HashMap> >> <map-Entry> >> <map-Key> >> <std-String value="entitySyncId"/> >> </map-Key> >> <map-Value> >> <std-String value="POSPUSH"/> >> </map-Value> >> </map-Entry> >> </map-HashMap> >> </ofbiz-ser> >> ]]></runtimeInfo> >> </RuntimeData> >> <JobSandbox jobId="POSPUSH" jobName="Push POS Data" runtimeDataId="POSPUSH" runTime="2000-01-01 00:00:00.000" >> serviceName="runEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPUSH"/> >> --> >> >> <!-- POSPULL Scheduled Service --> >> <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" frequency="HOURLY" intervalNumber="2" countNumber="-1"/> >> <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 00:15:00.000" recurrenceRuleId="POSPULL" >> recurrenceCount="0"/> >> <RuntimeData runtimeDataId="POSPULL"> >> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> >> <ofbiz-ser> >> <map-HashMap> >> <map-Entry> >> <map-Key> >> <std-String value="entitySyncId"/> >> </map-Key> >> <map-Value> >> <std-String value="<POS Terminal ID>"/> >> </map-Value> >> </map-Entry> >> <map-Entry> >> <map-Key> >> <std-String value="remotePullAndReportEntitySyncDataName"/> >> </map-Key> >> <map-Value> >> <std-String value="remotePullAndReportEntitySyncDataRmi"/> >> </map-Value> >> </map-Entry> >> </map-HashMap> >> </ofbiz-ser> >> ]]></runtimeInfo> >> </RuntimeData> >> <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" >> serviceName="runPullEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPULL"/> >> >> </entity-engine-xml> >> >> >> ----- Original Message ----- >> From: "Ajey.bitin" <[hidden email]> >> To: [hidden email] >> Sent: Wednesday, August 6, 2008 10:52:42 PM (GMT-0700) America/Denver >> Subject: Re: Problems while PUSH and PULL entity sync process in POS >> >> >> Hi Vince, >> >> I'm also trying to setup POS completely and struggling around the PULL >> activity. I've configured POS for only POS terminals and one MCS. Here with >> my settings, PUSH is being called successfully but I'm not able to configure >> PULL in the system. I knew from the mailing list, you have experimented a >> lot in POS. >> >> At present my serviceengine.xml of POS Terminal is configured with this >> setting: >> <service-location name="main-rmi" >> location="rmi://server:1098/RMIDispatcher"/> >> <service-location name="main-http" >> location="http://server:8089/webtools/control/httpService"/> >> >> <service-location name="entity-sync-rmi" >> location="rmi://server:1098/RMIDispatcher"/> >> <service-location name="entity-sync-http" >> location="http://server:8089/webtools/control/httpService"/> >> >> <service-location name="rita-rmi" >> location="rmi://server:1098/RMIDispatcher"/> >> <service-location name="eedcc-test" >> location="http://server:8089/webtools/control/httpService"/> >> >> The serviceengine.xml of Server (MCS) is configured with this setting: >> <service-location name="main-rmi" >> location="rmi://localhost:1088/RMIDispatcher"/> >> <service-location name="main-http" >> location="http://localhost:8080/webtools/control/httpService"/> >> >> <service-location name="entity-sync-rmi" >> location="rmi://localhost:1088/RMIDispatcher"/> >> <service-location name="entity-sync-http" >> location="http://localhost:8080/webtools/control/httpService"/> >> >> <service-location name="rita-rmi" >> location="rmi://localhost:1088/RMIDispatcher"/> >> <service-location name="eedcc-test" >> location="http://localhost:8080/webtools/control/httpService"/> >> >> I've configured the PosSyncSettings.xml of POS Terminal with PUSH but I'm >> getting difficulty to configure PULL, like what kind of setting I need to do >> on both POS Terminal and Server(MCS) regarding PULL. How every POS Terminal >> can call PULL so that all inventory, returns and Promo kind of information >> will be updated on all POS Terminals. >> >> Any help is highly appreciated. >> >> Thanx in advance, >> >> Ajey >> >> >> >> >> Vince Clark wrote: >>> >>> Pradeep >>> >>> Your settings looked fine in PosSyncSettings.xml. I have the impression >>> from your thread so far that you understand the setup when eliminating the >>> PSS and using the POS terminal to go directly to MCS. This is the setup we >>> have used as well so we're on the same page with that configuration. >>> >>> It can get a little tricky knowing what config to load on what server (POS >>> or MCS.) I have some notes at the top of my custom PosSyncSettings.xml >>> that I will send in a follow up message. Unfortunately I have to boot >>> another computer to get to them. But they go step by step on what to load >>> where. >>> >>> ----- Original Message ----- >>> From: "Jacques Le Roux" <[hidden email]> >>> To: [hidden email] >>> Sent: Monday, April 21, 2008 3:45:47 AM (GMT-0700) America/Denver >>> Subject: Re: Problems while PUSH and PULL entity sync process in POS >>> >>> >>> >>>> Hi Vince, >>>> >>>> Sorry I forgot to ask one importnt thing. The RMIIF environment variable >>>> is >>>> defined in startup script startofbiz.sh. But I'm using the windows >>>> environment to test it. Now in this case how can I set this RMIIF in our >>>> environment variable. >>> Simply tranpose to Windows this is a param tpo pass to JVM : >>> -Djava.rmi.server.hostname=<set your IP address here>" >>> >>>> Also, will there be any difference in the contents of PosSyncSeetings.xml >>>> on >>>> PSS+POS System and MCS System as I'm calling same two services on both >>>> system. This i the place where I'm a bit confused. >>> Are you using 2 different DBs on the PSS+POS System (one for each OFBiz >>> instance) ? Are you relaying through PSS when you send from >>> POS to MCS (this is the intended basic scheme, of course you can build >>> your own...) ? >>> >>> Jacques >>> >>>> -- >>>> With regards, >>>> S K Pradeep kumar >>>> >>> >>> >> > > |
Administrator
|
In reply to this post by skpradeepkumar
I had no time to review completly yet; but I even wonder if we should not put it in trunk.
I will review and let you know. Anyway as a page in Wiki will be good Jacques From: "Jacques Le Roux" <[hidden email]> > Vince, > > Please put in a new page under the POS page http://docs.ofbiz.org/display/OFBIZ/POS+System > > Thanks > > Jacques > > From: "Vince M. Clark" <[hidden email]> >> Sure. Any suggestion on where I should put it? >> >> ----- Original Message ----- >> From: "BJ Freeman" <[hidden email]> >> To: [hidden email] >> Sent: Thursday, August 7, 2008 10:09:06 AM (GMT-0700) America/Denver >> Subject: Re: Problems while PUSH and PULL entity sync process in POS >> >> Vince could you put this in the wiki >> TIA. >> >> >> Vince M. Clark sent the following on 8/7/2008 6:27 AM: >>> Ajey >>> >>> Not sure if it matters but in the serviceengine.xml file I only change the enity-sync-rmi, not the others. >>> >>> Below is a PosSyncSettings.xml file that includes fairly detailed notes on what to load where (POS vs. MCS) and in what order. >>> Hope it helps. When I modified this file it was the same approach you are taking, a POS terminal and MCS with no per store >>> servers. So it should be exactly what you are trying to do. >>> >>> I would also suggest that as you are going thru the learning process use a dev environment that you can wipe clean and start >>> over many times if necessary. You will need to get used to how synchronization is triggered and it helps if you can clean out >>> the sync settings on all machines (POS, PSS, MCS) and start over. >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <!-- >>> Licensed to the Apache Software Foundation (ASF) under one >>> or more contributor license agreements. See the NOTICE file >>> distributed with this work for additional information >>> regarding copyright ownership. The ASF licenses this file >>> to you under the Apache License, Version 2.0 (the >>> "License"); you may not use this file except in compliance >>> with the License. You may obtain a copy of the License at >>> >>> http://www.apache.org/licenses/LICENSE-2.0 >>> >>> Unless required by applicable law or agreed to in writing, >>> software distributed under the License is distributed on an >>> "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> KIND, either express or implied. See the License for the >>> specific language governing permissions and limitations >>> under the License. >>> >>> 2007-12-05 vclark Notes >>> EntiyGroup >>> EntityGroup and EntityGroupEntry records are only loaded on Master Central Server (MCS). >>> When the "PULL" sync occurs those records are copied down to the POS terminal. This >>> allows for changes to be made on MCS and propogate down to terminals. >>> Both sets of EntityGroup records (5501 and 5506) are reused across terminals. No need >>> to have separate EntityGroup records for each terminal. >>> >>> EntitySync (PULL) >>> EntitySync record is loaded on MCS. >>> entitySyncId must be unique for each terminal so we use the POS terminal ID. >>> >>> EntitySync (PUSH) >>> EntitySync record is loaded on POS terminal. >>> Can use the same enitySyncId since it is loaded on each terminal, not MCS. >>> >>> RecurrenceRule, RecurrenceInfo, RuntimeData >>> Both of these sets of records are loaded on the POS terminal. This initiates >>> PUSH and PULL transfers and these are always initiated from the terminals, not MCS. >>> >>> Step by Step Instructions >>> 1. Setup POS terminal with clean checkout from trunk >>> 2. In startofbiz.sh/bat set RMIIF to localhost (uncomment the line.) >>> 3. Create empty ofbiz database and populate with seed data (ant run-install-seed). Note that for testing/learning you can load >>> demo data as well. For a production environment you will need to only load seed, then do all of your organization specific setup >>> such as accounting, facilities, stores, etc. >>> 4. framework/service/config/serviceengine.xml - enity-sync-rmi set to MCS. >>> 5. Start POS terminal in standard mode (web interface) >>> 6. Load EntitySync record for PULL on MCS. >>> 7. Load XML on POS terminal to trigger PULL sync >>> 8. Load EntitySync PUSH on POS terminal. >>> 9. When pull is finished, load XML to trigger PUSH >>> 10. Shutdown OfBiz on POS terminal >>> 11. pos-containers.xml on POS client - set xui session id = <facilityId-pos terminal number> ex. 10020-1. >>> 12. pos-containers.xml on POS client - set faclility ID = <facilityId) ex. 10020. >>> >>> --> >>> <entity-engine-xml> >>> >>> <!-- MCS->POS Per Store Server to POS Terminal >>> This data is loaded on the Master Central Server --> >>> <EntityGroup entityGroupId="5501" entityGroupName="POS: Per Store Server to POS Terminal"/> >>> <!-- these are used to update sync settings on the POS terminals from the central server --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.entity.group" applEnumId="ESIA_INCLUDE"/> >>> <!-- this is the general product information needed for pricing, promotions, basic product info, etc --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.product" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.price" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.promo" applEnumId="ESIA_INCLUDE"/> >>> <!-- org.ofbiz.product.category is needed for certain promotions, probably won't be used much for category browsing in the >>> POS --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.category" applEnumId="ESIA_INCLUDE"/> >>> <!-- org.ofbiz.party.party may be needed for certain promotions --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.pos.PosTerminal" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.storage" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.store" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.accounting.tax" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.login" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.securitygroup" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> >>> >>> <!-- POS->MCS Per Store Server to Central Server --> >>> <EntityGroup entityGroupId="5506" entityGroupName="POS: Per Store Server to Central Server"/> >>> <!-- org.ofbiz.party.party may be needed for order related information, like party roles or contact info etc --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> >>> <!-- all order and related information, including payment, etc info --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.order" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.invoice" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.payment" applEnumId="ESIA_INCLUDE"/> >>> <!-- include inventory and issuance info --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.shipment.issuance" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalLog" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalState" applEnumId="ESIA_INCLUDE"/> >>> <!-- include POS transactions --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalInternTx" applEnumId="ESIA_INCLUDE"/> >>> >>> >>> <!-- Some examples of EntitySync settings for pulling and pushing data around --> >>> <!-- POS example meant to be used for pushing data from POS to MCS --> >>> <EntitySync entitySyncId="POSPUSH" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" >>> targetServiceName="remoteStoreEntitySyncDataRmi" >>> keepRemoveInfoHours="24" forPushOnly="Y"/> >>> <EntitySyncIncludeGroup entitySyncId="POSPUSH" entityGroupId="5506"/> >>> >>> <!-- POS example meant to be used for pulling data from MCS to POS --> >>> <!-- NOTE: for pulling setup the EntitySync record lives on the server the data is pulled from and should ONLY BE USED FOR ONE >>> CLIENT! --> >>> <EntitySync entitySyncId="<POS Terminal ID>" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" >>> keepRemoveInfoHours="24" forPullOnly="Y"/> >>> <EntitySyncIncludeGroup entitySyncId="<POS Terminal ID>" entityGroupId="5501"/> >>> >>> <!-- POS Push Scheduled Service --> >>> <!-- >>> <RecurrenceRule recurrenceRuleId="POSPUSH" untilDateTime="" frequency="MINUTELY" intervalNumber="5" countNumber="-1"/> >>> <RecurrenceInfo recurrenceInfoId="POSPUSH" startDateTime="2000-01-01 00:00:00.000" recurrenceRuleId="POSPUSH" >>> recurrenceCount="0"/> >>> <RuntimeData runtimeDataId="POSPUSH"> >>> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> >>> <ofbiz-ser> >>> <map-HashMap> >>> <map-Entry> >>> <map-Key> >>> <std-String value="entitySyncId"/> >>> </map-Key> >>> <map-Value> >>> <std-String value="POSPUSH"/> >>> </map-Value> >>> </map-Entry> >>> </map-HashMap> >>> </ofbiz-ser> >>> ]]></runtimeInfo> >>> </RuntimeData> >>> <JobSandbox jobId="POSPUSH" jobName="Push POS Data" runtimeDataId="POSPUSH" runTime="2000-01-01 00:00:00.000" >>> serviceName="runEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPUSH"/> >>> --> >>> >>> <!-- POSPULL Scheduled Service --> >>> <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" frequency="HOURLY" intervalNumber="2" countNumber="-1"/> >>> <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 00:15:00.000" recurrenceRuleId="POSPULL" >>> recurrenceCount="0"/> >>> <RuntimeData runtimeDataId="POSPULL"> >>> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> >>> <ofbiz-ser> >>> <map-HashMap> >>> <map-Entry> >>> <map-Key> >>> <std-String value="entitySyncId"/> >>> </map-Key> >>> <map-Value> >>> <std-String value="<POS Terminal ID>"/> >>> </map-Value> >>> </map-Entry> >>> <map-Entry> >>> <map-Key> >>> <std-String value="remotePullAndReportEntitySyncDataName"/> >>> </map-Key> >>> <map-Value> >>> <std-String value="remotePullAndReportEntitySyncDataRmi"/> >>> </map-Value> >>> </map-Entry> >>> </map-HashMap> >>> </ofbiz-ser> >>> ]]></runtimeInfo> >>> </RuntimeData> >>> <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" >>> serviceName="runPullEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPULL"/> >>> >>> </entity-engine-xml> >>> >>> >>> ----- Original Message ----- >>> From: "Ajey.bitin" <[hidden email]> >>> To: [hidden email] >>> Sent: Wednesday, August 6, 2008 10:52:42 PM (GMT-0700) America/Denver >>> Subject: Re: Problems while PUSH and PULL entity sync process in POS >>> >>> >>> Hi Vince, >>> >>> I'm also trying to setup POS completely and struggling around the PULL >>> activity. I've configured POS for only POS terminals and one MCS. Here with >>> my settings, PUSH is being called successfully but I'm not able to configure >>> PULL in the system. I knew from the mailing list, you have experimented a >>> lot in POS. >>> >>> At present my serviceengine.xml of POS Terminal is configured with this >>> setting: >>> <service-location name="main-rmi" >>> location="rmi://server:1098/RMIDispatcher"/> >>> <service-location name="main-http" >>> location="http://server:8089/webtools/control/httpService"/> >>> >>> <service-location name="entity-sync-rmi" >>> location="rmi://server:1098/RMIDispatcher"/> >>> <service-location name="entity-sync-http" >>> location="http://server:8089/webtools/control/httpService"/> >>> >>> <service-location name="rita-rmi" >>> location="rmi://server:1098/RMIDispatcher"/> >>> <service-location name="eedcc-test" >>> location="http://server:8089/webtools/control/httpService"/> >>> >>> The serviceengine.xml of Server (MCS) is configured with this setting: >>> <service-location name="main-rmi" >>> location="rmi://localhost:1088/RMIDispatcher"/> >>> <service-location name="main-http" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> >>> <service-location name="entity-sync-rmi" >>> location="rmi://localhost:1088/RMIDispatcher"/> >>> <service-location name="entity-sync-http" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> >>> <service-location name="rita-rmi" >>> location="rmi://localhost:1088/RMIDispatcher"/> >>> <service-location name="eedcc-test" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> >>> I've configured the PosSyncSettings.xml of POS Terminal with PUSH but I'm >>> getting difficulty to configure PULL, like what kind of setting I need to do >>> on both POS Terminal and Server(MCS) regarding PULL. How every POS Terminal >>> can call PULL so that all inventory, returns and Promo kind of information >>> will be updated on all POS Terminals. >>> >>> Any help is highly appreciated. >>> >>> Thanx in advance, >>> >>> Ajey >>> >>> >>> >>> >>> Vince Clark wrote: >>>> >>>> Pradeep >>>> >>>> Your settings looked fine in PosSyncSettings.xml. I have the impression >>>> from your thread so far that you understand the setup when eliminating the >>>> PSS and using the POS terminal to go directly to MCS. This is the setup we >>>> have used as well so we're on the same page with that configuration. >>>> >>>> It can get a little tricky knowing what config to load on what server (POS >>>> or MCS.) I have some notes at the top of my custom PosSyncSettings.xml >>>> that I will send in a follow up message. Unfortunately I have to boot >>>> another computer to get to them. But they go step by step on what to load >>>> where. >>>> >>>> ----- Original Message ----- >>>> From: "Jacques Le Roux" <[hidden email]> >>>> To: [hidden email] >>>> Sent: Monday, April 21, 2008 3:45:47 AM (GMT-0700) America/Denver >>>> Subject: Re: Problems while PUSH and PULL entity sync process in POS >>>> >>>> >>>> >>>>> Hi Vince, >>>>> >>>>> Sorry I forgot to ask one importnt thing. The RMIIF environment variable >>>>> is >>>>> defined in startup script startofbiz.sh. But I'm using the windows >>>>> environment to test it. Now in this case how can I set this RMIIF in our >>>>> environment variable. >>>> Simply tranpose to Windows this is a param tpo pass to JVM : >>>> -Djava.rmi.server.hostname=<set your IP address here>" >>>> >>>>> Also, will there be any difference in the contents of PosSyncSeetings.xml >>>>> on >>>>> PSS+POS System and MCS System as I'm calling same two services on both >>>>> system. This i the place where I'm a bit confused. >>>> Are you using 2 different DBs on the PSS+POS System (one for each OFBiz >>>> instance) ? Are you relaying through PSS when you send from >>>> POS to MCS (this is the intended basic scheme, of course you can build >>>> your own...) ? >>>> >>>> Jacques >>>> >>>>> -- >>>>> With regards, >>>>> S K Pradeep kumar >>>>> >>>> >>>> >>> >> >> > |
We could put it on the wiki and just refer to the URL in PosSyncSettings.xml.
----- Original Message ----- From: "Jacques Le Roux" <[hidden email]> To: [hidden email] Sent: Thursday, August 7, 2008 11:21:21 AM (GMT-0700) America/Denver Subject: Re: Problems while PUSH and PULL entity sync process in POS I had no time to review completly yet; but I even wonder if we should not put it in trunk. I will review and let you know. Anyway as a page in Wiki will be good Jacques From: "Jacques Le Roux" <[hidden email]> > Vince, > > Please put in a new page under the POS page http://docs.ofbiz.org/display/OFBIZ/POS+System > > Thanks > > Jacques > > From: "Vince M. Clark" <[hidden email]> >> Sure. Any suggestion on where I should put it? >> >> ----- Original Message ----- >> From: "BJ Freeman" <[hidden email]> >> To: [hidden email] >> Sent: Thursday, August 7, 2008 10:09:06 AM (GMT-0700) America/Denver >> Subject: Re: Problems while PUSH and PULL entity sync process in POS >> >> Vince could you put this in the wiki >> TIA. >> >> >> Vince M. Clark sent the following on 8/7/2008 6:27 AM: >>> Ajey >>> >>> Not sure if it matters but in the serviceengine.xml file I only change the enity-sync-rmi, not the others. >>> >>> Below is a PosSyncSettings.xml file that includes fairly detailed notes on what to load where (POS vs. MCS) and in what order. >>> Hope it helps. When I modified this file it was the same approach you are taking, a POS terminal and MCS with no per store >>> servers. So it should be exactly what you are trying to do. >>> >>> I would also suggest that as you are going thru the learning process use a dev environment that you can wipe clean and start >>> over many times if necessary. You will need to get used to how synchronization is triggered and it helps if you can clean out >>> the sync settings on all machines (POS, PSS, MCS) and start over. >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <!-- >>> Licensed to the Apache Software Foundation (ASF) under one >>> or more contributor license agreements. See the NOTICE file >>> distributed with this work for additional information >>> regarding copyright ownership. The ASF licenses this file >>> to you under the Apache License, Version 2.0 (the >>> "License"); you may not use this file except in compliance >>> with the License. You may obtain a copy of the License at >>> >>> http://www.apache.org/licenses/LICENSE-2.0 >>> >>> Unless required by applicable law or agreed to in writing, >>> software distributed under the License is distributed on an >>> "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> KIND, either express or implied. See the License for the >>> specific language governing permissions and limitations >>> under the License. >>> >>> 2007-12-05 vclark Notes >>> EntiyGroup >>> EntityGroup and EntityGroupEntry records are only loaded on Master Central Server (MCS). >>> When the "PULL" sync occurs those records are copied down to the POS terminal. This >>> allows for changes to be made on MCS and propogate down to terminals. >>> Both sets of EntityGroup records (5501 and 5506) are reused across terminals. No need >>> to have separate EntityGroup records for each terminal. >>> >>> EntitySync (PULL) >>> EntitySync record is loaded on MCS. >>> entitySyncId must be unique for each terminal so we use the POS terminal ID. >>> >>> EntitySync (PUSH) >>> EntitySync record is loaded on POS terminal. >>> Can use the same enitySyncId since it is loaded on each terminal, not MCS. >>> >>> RecurrenceRule, RecurrenceInfo, RuntimeData >>> Both of these sets of records are loaded on the POS terminal. This initiates >>> PUSH and PULL transfers and these are always initiated from the terminals, not MCS. >>> >>> Step by Step Instructions >>> 1. Setup POS terminal with clean checkout from trunk >>> 2. In startofbiz.sh/bat set RMIIF to localhost (uncomment the line.) >>> 3. Create empty ofbiz database and populate with seed data (ant run-install-seed). Note that for testing/learning you can load >>> demo data as well. For a production environment you will need to only load seed, then do all of your organization specific setup >>> such as accounting, facilities, stores, etc. >>> 4. framework/service/config/serviceengine.xml - enity-sync-rmi set to MCS. >>> 5. Start POS terminal in standard mode (web interface) >>> 6. Load EntitySync record for PULL on MCS. >>> 7. Load XML on POS terminal to trigger PULL sync >>> 8. Load EntitySync PUSH on POS terminal. >>> 9. When pull is finished, load XML to trigger PUSH >>> 10. Shutdown OfBiz on POS terminal >>> 11. pos-containers.xml on POS client - set xui session id = <facilityId-pos terminal number> ex. 10020-1. >>> 12. pos-containers.xml on POS client - set faclility ID = <facilityId) ex. 10020. >>> >>> --> >>> <entity-engine-xml> >>> >>> <!-- MCS->POS Per Store Server to POS Terminal >>> This data is loaded on the Master Central Server --> >>> <EntityGroup entityGroupId="5501" entityGroupName="POS: Per Store Server to POS Terminal"/> >>> <!-- these are used to update sync settings on the POS terminals from the central server --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.entity.group" applEnumId="ESIA_INCLUDE"/> >>> <!-- this is the general product information needed for pricing, promotions, basic product info, etc --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.product" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.price" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.promo" applEnumId="ESIA_INCLUDE"/> >>> <!-- org.ofbiz.product.category is needed for certain promotions, probably won't be used much for category browsing in the >>> POS --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.category" applEnumId="ESIA_INCLUDE"/> >>> <!-- org.ofbiz.party.party may be needed for certain promotions --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.pos.PosTerminal" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.storage" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.store" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.accounting.tax" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.login" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.securitygroup" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> >>> >>> <!-- POS->MCS Per Store Server to Central Server --> >>> <EntityGroup entityGroupId="5506" entityGroupName="POS: Per Store Server to Central Server"/> >>> <!-- org.ofbiz.party.party may be needed for order related information, like party roles or contact info etc --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> >>> <!-- all order and related information, including payment, etc info --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.order" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.invoice" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.payment" applEnumId="ESIA_INCLUDE"/> >>> <!-- include inventory and issuance info --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.shipment.issuance" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalLog" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalState" applEnumId="ESIA_INCLUDE"/> >>> <!-- include POS transactions --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalInternTx" applEnumId="ESIA_INCLUDE"/> >>> >>> >>> <!-- Some examples of EntitySync settings for pulling and pushing data around --> >>> <!-- POS example meant to be used for pushing data from POS to MCS --> >>> <EntitySync entitySyncId="POSPUSH" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" >>> targetServiceName="remoteStoreEntitySyncDataRmi" >>> keepRemoveInfoHours="24" forPushOnly="Y"/> >>> <EntitySyncIncludeGroup entitySyncId="POSPUSH" entityGroupId="5506"/> >>> >>> <!-- POS example meant to be used for pulling data from MCS to POS --> >>> <!-- NOTE: for pulling setup the EntitySync record lives on the server the data is pulled from and should ONLY BE USED FOR ONE >>> CLIENT! --> >>> <EntitySync entitySyncId="<POS Terminal ID>" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" >>> keepRemoveInfoHours="24" forPullOnly="Y"/> >>> <EntitySyncIncludeGroup entitySyncId="<POS Terminal ID>" entityGroupId="5501"/> >>> >>> <!-- POS Push Scheduled Service --> >>> <!-- >>> <RecurrenceRule recurrenceRuleId="POSPUSH" untilDateTime="" frequency="MINUTELY" intervalNumber="5" countNumber="-1"/> >>> <RecurrenceInfo recurrenceInfoId="POSPUSH" startDateTime="2000-01-01 00:00:00.000" recurrenceRuleId="POSPUSH" >>> recurrenceCount="0"/> >>> <RuntimeData runtimeDataId="POSPUSH"> >>> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> >>> <ofbiz-ser> >>> <map-HashMap> >>> <map-Entry> >>> <map-Key> >>> <std-String value="entitySyncId"/> >>> </map-Key> >>> <map-Value> >>> <std-String value="POSPUSH"/> >>> </map-Value> >>> </map-Entry> >>> </map-HashMap> >>> </ofbiz-ser> >>> ]]></runtimeInfo> >>> </RuntimeData> >>> <JobSandbox jobId="POSPUSH" jobName="Push POS Data" runtimeDataId="POSPUSH" runTime="2000-01-01 00:00:00.000" >>> serviceName="runEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPUSH"/> >>> --> >>> >>> <!-- POSPULL Scheduled Service --> >>> <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" frequency="HOURLY" intervalNumber="2" countNumber="-1"/> >>> <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 00:15:00.000" recurrenceRuleId="POSPULL" >>> recurrenceCount="0"/> >>> <RuntimeData runtimeDataId="POSPULL"> >>> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> >>> <ofbiz-ser> >>> <map-HashMap> >>> <map-Entry> >>> <map-Key> >>> <std-String value="entitySyncId"/> >>> </map-Key> >>> <map-Value> >>> <std-String value="<POS Terminal ID>"/> >>> </map-Value> >>> </map-Entry> >>> <map-Entry> >>> <map-Key> >>> <std-String value="remotePullAndReportEntitySyncDataName"/> >>> </map-Key> >>> <map-Value> >>> <std-String value="remotePullAndReportEntitySyncDataRmi"/> >>> </map-Value> >>> </map-Entry> >>> </map-HashMap> >>> </ofbiz-ser> >>> ]]></runtimeInfo> >>> </RuntimeData> >>> <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" >>> serviceName="runPullEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPULL"/> >>> >>> </entity-engine-xml> >>> >>> >>> ----- Original Message ----- >>> From: "Ajey.bitin" <[hidden email]> >>> To: [hidden email] >>> Sent: Wednesday, August 6, 2008 10:52:42 PM (GMT-0700) America/Denver >>> Subject: Re: Problems while PUSH and PULL entity sync process in POS >>> >>> >>> Hi Vince, >>> >>> I'm also trying to setup POS completely and struggling around the PULL >>> activity. I've configured POS for only POS terminals and one MCS. Here with >>> my settings, PUSH is being called successfully but I'm not able to configure >>> PULL in the system. I knew from the mailing list, you have experimented a >>> lot in POS. >>> >>> At present my serviceengine.xml of POS Terminal is configured with this >>> setting: >>> <service-location name="main-rmi" >>> location="rmi://server:1098/RMIDispatcher"/> >>> <service-location name="main-http" >>> location="http://server:8089/webtools/control/httpService"/> >>> >>> <service-location name="entity-sync-rmi" >>> location="rmi://server:1098/RMIDispatcher"/> >>> <service-location name="entity-sync-http" >>> location="http://server:8089/webtools/control/httpService"/> >>> >>> <service-location name="rita-rmi" >>> location="rmi://server:1098/RMIDispatcher"/> >>> <service-location name="eedcc-test" >>> location="http://server:8089/webtools/control/httpService"/> >>> >>> The serviceengine.xml of Server (MCS) is configured with this setting: >>> <service-location name="main-rmi" >>> location="rmi://localhost:1088/RMIDispatcher"/> >>> <service-location name="main-http" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> >>> <service-location name="entity-sync-rmi" >>> location="rmi://localhost:1088/RMIDispatcher"/> >>> <service-location name="entity-sync-http" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> >>> <service-location name="rita-rmi" >>> location="rmi://localhost:1088/RMIDispatcher"/> >>> <service-location name="eedcc-test" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> >>> I've configured the PosSyncSettings.xml of POS Terminal with PUSH but I'm >>> getting difficulty to configure PULL, like what kind of setting I need to do >>> on both POS Terminal and Server(MCS) regarding PULL. How every POS Terminal >>> can call PULL so that all inventory, returns and Promo kind of information >>> will be updated on all POS Terminals. >>> >>> Any help is highly appreciated. >>> >>> Thanx in advance, >>> >>> Ajey >>> >>> >>> >>> >>> Vince Clark wrote: >>>> >>>> Pradeep >>>> >>>> Your settings looked fine in PosSyncSettings.xml. I have the impression >>>> from your thread so far that you understand the setup when eliminating the >>>> PSS and using the POS terminal to go directly to MCS. This is the setup we >>>> have used as well so we're on the same page with that configuration. >>>> >>>> It can get a little tricky knowing what config to load on what server (POS >>>> or MCS.) I have some notes at the top of my custom PosSyncSettings.xml >>>> that I will send in a follow up message. Unfortunately I have to boot >>>> another computer to get to them. But they go step by step on what to load >>>> where. >>>> >>>> ----- Original Message ----- >>>> From: "Jacques Le Roux" <[hidden email]> >>>> To: [hidden email] >>>> Sent: Monday, April 21, 2008 3:45:47 AM (GMT-0700) America/Denver >>>> Subject: Re: Problems while PUSH and PULL entity sync process in POS >>>> >>>> >>>> >>>>> Hi Vince, >>>>> >>>>> Sorry I forgot to ask one importnt thing. The RMIIF environment variable >>>>> is >>>>> defined in startup script startofbiz.sh. But I'm using the windows >>>>> environment to test it. Now in this case how can I set this RMIIF in our >>>>> environment variable. >>>> Simply tranpose to Windows this is a param tpo pass to JVM : >>>> -Djava.rmi.server.hostname=<set your IP address here>" >>>> >>>>> Also, will there be any difference in the contents of PosSyncSeetings.xml >>>>> on >>>>> PSS+POS System and MCS System as I'm calling same two services on both >>>>> system. This i the place where I'm a bit confused. >>>> Are you using 2 different DBs on the PSS+POS System (one for each OFBiz >>>> instance) ? Are you relaying through PSS when you send from >>>> POS to MCS (this is the intended basic scheme, of course you can build >>>> your own...) ? >>>> >>>> Jacques >>>> >>>>> -- >>>>> With regards, >>>>> S K Pradeep kumar >>>>> >>>> >>>> >>> >> >> > |
Added to wiki with some additional notes for clarity:
http://docs.ofbiz.org/display/OFBIZ/Sync+Setup+Notes+and+Example ----- Original Message ----- From: "Vince M. Clark" <[hidden email]> To: [hidden email], "Jacques Le Roux" <[hidden email]> Sent: Thursday, August 7, 2008 10:47:57 AM (GMT-0700) America/Denver Subject: Re: Problems while PUSH and PULL entity sync process in POS We could put it on the wiki and just refer to the URL in PosSyncSettings.xml. ----- Original Message ----- From: "Jacques Le Roux" <[hidden email]> To: [hidden email] Sent: Thursday, August 7, 2008 11:21:21 AM (GMT-0700) America/Denver Subject: Re: Problems while PUSH and PULL entity sync process in POS I had no time to review completly yet; but I even wonder if we should not put it in trunk. I will review and let you know. Anyway as a page in Wiki will be good Jacques From: "Jacques Le Roux" <[hidden email]> > Vince, > > Please put in a new page under the POS page http://docs.ofbiz.org/display/OFBIZ/POS+System > > Thanks > > Jacques > > From: "Vince M. Clark" <[hidden email]> >> Sure. Any suggestion on where I should put it? >> >> ----- Original Message ----- >> From: "BJ Freeman" <[hidden email]> >> To: [hidden email] >> Sent: Thursday, August 7, 2008 10:09:06 AM (GMT-0700) America/Denver >> Subject: Re: Problems while PUSH and PULL entity sync process in POS >> >> Vince could you put this in the wiki >> TIA. >> >> >> Vince M. Clark sent the following on 8/7/2008 6:27 AM: >>> Ajey >>> >>> Not sure if it matters but in the serviceengine.xml file I only change the enity-sync-rmi, not the others. >>> >>> Below is a PosSyncSettings.xml file that includes fairly detailed notes on what to load where (POS vs. MCS) and in what order. >>> Hope it helps. When I modified this file it was the same approach you are taking, a POS terminal and MCS with no per store >>> servers. So it should be exactly what you are trying to do. >>> >>> I would also suggest that as you are going thru the learning process use a dev environment that you can wipe clean and start >>> over many times if necessary. You will need to get used to how synchronization is triggered and it helps if you can clean out >>> the sync settings on all machines (POS, PSS, MCS) and start over. >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <!-- >>> Licensed to the Apache Software Foundation (ASF) under one >>> or more contributor license agreements. See the NOTICE file >>> distributed with this work for additional information >>> regarding copyright ownership. The ASF licenses this file >>> to you under the Apache License, Version 2.0 (the >>> "License"); you may not use this file except in compliance >>> with the License. You may obtain a copy of the License at >>> >>> http://www.apache.org/licenses/LICENSE-2.0 >>> >>> Unless required by applicable law or agreed to in writing, >>> software distributed under the License is distributed on an >>> "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> KIND, either express or implied. See the License for the >>> specific language governing permissions and limitations >>> under the License. >>> >>> 2007-12-05 vclark Notes >>> EntiyGroup >>> EntityGroup and EntityGroupEntry records are only loaded on Master Central Server (MCS). >>> When the "PULL" sync occurs those records are copied down to the POS terminal. This >>> allows for changes to be made on MCS and propogate down to terminals. >>> Both sets of EntityGroup records (5501 and 5506) are reused across terminals. No need >>> to have separate EntityGroup records for each terminal. >>> >>> EntitySync (PULL) >>> EntitySync record is loaded on MCS. >>> entitySyncId must be unique for each terminal so we use the POS terminal ID. >>> >>> EntitySync (PUSH) >>> EntitySync record is loaded on POS terminal. >>> Can use the same enitySyncId since it is loaded on each terminal, not MCS. >>> >>> RecurrenceRule, RecurrenceInfo, RuntimeData >>> Both of these sets of records are loaded on the POS terminal. This initiates >>> PUSH and PULL transfers and these are always initiated from the terminals, not MCS. >>> >>> Step by Step Instructions >>> 1. Setup POS terminal with clean checkout from trunk >>> 2. In startofbiz.sh/bat set RMIIF to localhost (uncomment the line.) >>> 3. Create empty ofbiz database and populate with seed data (ant run-install-seed). Note that for testing/learning you can load >>> demo data as well. For a production environment you will need to only load seed, then do all of your organization specific setup >>> such as accounting, facilities, stores, etc. >>> 4. framework/service/config/serviceengine.xml - enity-sync-rmi set to MCS. >>> 5. Start POS terminal in standard mode (web interface) >>> 6. Load EntitySync record for PULL on MCS. >>> 7. Load XML on POS terminal to trigger PULL sync >>> 8. Load EntitySync PUSH on POS terminal. >>> 9. When pull is finished, load XML to trigger PUSH >>> 10. Shutdown OfBiz on POS terminal >>> 11. pos-containers.xml on POS client - set xui session id = <facilityId-pos terminal number> ex. 10020-1. >>> 12. pos-containers.xml on POS client - set faclility ID = <facilityId) ex. 10020. >>> >>> --> >>> <entity-engine-xml> >>> >>> <!-- MCS->POS Per Store Server to POS Terminal >>> This data is loaded on the Master Central Server --> >>> <EntityGroup entityGroupId="5501" entityGroupName="POS: Per Store Server to POS Terminal"/> >>> <!-- these are used to update sync settings on the POS terminals from the central server --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.entity.group" applEnumId="ESIA_INCLUDE"/> >>> <!-- this is the general product information needed for pricing, promotions, basic product info, etc --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.product" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.price" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.promo" applEnumId="ESIA_INCLUDE"/> >>> <!-- org.ofbiz.product.category is needed for certain promotions, probably won't be used much for category browsing in the >>> POS --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.category" applEnumId="ESIA_INCLUDE"/> >>> <!-- org.ofbiz.party.party may be needed for certain promotions --> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.pos.PosTerminal" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.storage" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.store" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.accounting.tax" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.login" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.security.securitygroup" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5501" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> >>> >>> <!-- POS->MCS Per Store Server to Central Server --> >>> <EntityGroup entityGroupId="5506" entityGroupName="POS: Per Store Server to Central Server"/> >>> <!-- org.ofbiz.party.party may be needed for order related information, like party roles or contact info etc --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.party" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.party.contact" applEnumId="ESIA_INCLUDE"/> >>> <!-- all order and related information, including payment, etc info --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.order" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.invoice" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.accounting.payment" applEnumId="ESIA_INCLUDE"/> >>> <!-- include inventory and issuance info --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.shipment.issuance" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.product.inventory" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalLog" applEnumId="ESIA_INCLUDE"/> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalState" applEnumId="ESIA_INCLUDE"/> >>> <!-- include POS transactions --> >>> <EntityGroupEntry entityGroupId="5506" entityOrPackage="org.ofbiz.pos.PosTerminalInternTx" applEnumId="ESIA_INCLUDE"/> >>> >>> >>> <!-- Some examples of EntitySync settings for pulling and pushing data around --> >>> <!-- POS example meant to be used for pushing data from POS to MCS --> >>> <EntitySync entitySyncId="POSPUSH" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" >>> targetServiceName="remoteStoreEntitySyncDataRmi" >>> keepRemoveInfoHours="24" forPushOnly="Y"/> >>> <EntitySyncIncludeGroup entitySyncId="POSPUSH" entityGroupId="5506"/> >>> >>> <!-- POS example meant to be used for pulling data from MCS to POS --> >>> <!-- NOTE: for pulling setup the EntitySync record lives on the server the data is pulled from and should ONLY BE USED FOR ONE >>> CLIENT! --> >>> <EntitySync entitySyncId="<POS Terminal ID>" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" >>> keepRemoveInfoHours="24" forPullOnly="Y"/> >>> <EntitySyncIncludeGroup entitySyncId="<POS Terminal ID>" entityGroupId="5501"/> >>> >>> <!-- POS Push Scheduled Service --> >>> <!-- >>> <RecurrenceRule recurrenceRuleId="POSPUSH" untilDateTime="" frequency="MINUTELY" intervalNumber="5" countNumber="-1"/> >>> <RecurrenceInfo recurrenceInfoId="POSPUSH" startDateTime="2000-01-01 00:00:00.000" recurrenceRuleId="POSPUSH" >>> recurrenceCount="0"/> >>> <RuntimeData runtimeDataId="POSPUSH"> >>> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> >>> <ofbiz-ser> >>> <map-HashMap> >>> <map-Entry> >>> <map-Key> >>> <std-String value="entitySyncId"/> >>> </map-Key> >>> <map-Value> >>> <std-String value="POSPUSH"/> >>> </map-Value> >>> </map-Entry> >>> </map-HashMap> >>> </ofbiz-ser> >>> ]]></runtimeInfo> >>> </RuntimeData> >>> <JobSandbox jobId="POSPUSH" jobName="Push POS Data" runtimeDataId="POSPUSH" runTime="2000-01-01 00:00:00.000" >>> serviceName="runEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPUSH"/> >>> --> >>> >>> <!-- POSPULL Scheduled Service --> >>> <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" frequency="HOURLY" intervalNumber="2" countNumber="-1"/> >>> <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 00:15:00.000" recurrenceRuleId="POSPULL" >>> recurrenceCount="0"/> >>> <RuntimeData runtimeDataId="POSPULL"> >>> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> >>> <ofbiz-ser> >>> <map-HashMap> >>> <map-Entry> >>> <map-Key> >>> <std-String value="entitySyncId"/> >>> </map-Key> >>> <map-Value> >>> <std-String value="<POS Terminal ID>"/> >>> </map-Value> >>> </map-Entry> >>> <map-Entry> >>> <map-Key> >>> <std-String value="remotePullAndReportEntitySyncDataName"/> >>> </map-Key> >>> <map-Value> >>> <std-String value="remotePullAndReportEntitySyncDataRmi"/> >>> </map-Value> >>> </map-Entry> >>> </map-HashMap> >>> </ofbiz-ser> >>> ]]></runtimeInfo> >>> </RuntimeData> >>> <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" >>> serviceName="runPullEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPULL"/> >>> >>> </entity-engine-xml> >>> >>> >>> ----- Original Message ----- >>> From: "Ajey.bitin" <[hidden email]> >>> To: [hidden email] >>> Sent: Wednesday, August 6, 2008 10:52:42 PM (GMT-0700) America/Denver >>> Subject: Re: Problems while PUSH and PULL entity sync process in POS >>> >>> >>> Hi Vince, >>> >>> I'm also trying to setup POS completely and struggling around the PULL >>> activity. I've configured POS for only POS terminals and one MCS. Here with >>> my settings, PUSH is being called successfully but I'm not able to configure >>> PULL in the system. I knew from the mailing list, you have experimented a >>> lot in POS. >>> >>> At present my serviceengine.xml of POS Terminal is configured with this >>> setting: >>> <service-location name="main-rmi" >>> location="rmi://server:1098/RMIDispatcher"/> >>> <service-location name="main-http" >>> location="http://server:8089/webtools/control/httpService"/> >>> >>> <service-location name="entity-sync-rmi" >>> location="rmi://server:1098/RMIDispatcher"/> >>> <service-location name="entity-sync-http" >>> location="http://server:8089/webtools/control/httpService"/> >>> >>> <service-location name="rita-rmi" >>> location="rmi://server:1098/RMIDispatcher"/> >>> <service-location name="eedcc-test" >>> location="http://server:8089/webtools/control/httpService"/> >>> >>> The serviceengine.xml of Server (MCS) is configured with this setting: >>> <service-location name="main-rmi" >>> location="rmi://localhost:1088/RMIDispatcher"/> >>> <service-location name="main-http" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> >>> <service-location name="entity-sync-rmi" >>> location="rmi://localhost:1088/RMIDispatcher"/> >>> <service-location name="entity-sync-http" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> >>> <service-location name="rita-rmi" >>> location="rmi://localhost:1088/RMIDispatcher"/> >>> <service-location name="eedcc-test" >>> location="http://localhost:8080/webtools/control/httpService"/> >>> >>> I've configured the PosSyncSettings.xml of POS Terminal with PUSH but I'm >>> getting difficulty to configure PULL, like what kind of setting I need to do >>> on both POS Terminal and Server(MCS) regarding PULL. How every POS Terminal >>> can call PULL so that all inventory, returns and Promo kind of information >>> will be updated on all POS Terminals. >>> >>> Any help is highly appreciated. >>> >>> Thanx in advance, >>> >>> Ajey >>> >>> >>> >>> >>> Vince Clark wrote: >>>> >>>> Pradeep >>>> >>>> Your settings looked fine in PosSyncSettings.xml. I have the impression >>>> from your thread so far that you understand the setup when eliminating the >>>> PSS and using the POS terminal to go directly to MCS. This is the setup we >>>> have used as well so we're on the same page with that configuration. >>>> >>>> It can get a little tricky knowing what config to load on what server (POS >>>> or MCS.) I have some notes at the top of my custom PosSyncSettings.xml >>>> that I will send in a follow up message. Unfortunately I have to boot >>>> another computer to get to them. But they go step by step on what to load >>>> where. >>>> >>>> ----- Original Message ----- >>>> From: "Jacques Le Roux" <[hidden email]> >>>> To: [hidden email] >>>> Sent: Monday, April 21, 2008 3:45:47 AM (GMT-0700) America/Denver >>>> Subject: Re: Problems while PUSH and PULL entity sync process in POS >>>> >>>> >>>> >>>>> Hi Vince, >>>>> >>>>> Sorry I forgot to ask one importnt thing. The RMIIF environment variable >>>>> is >>>>> defined in startup script startofbiz.sh. But I'm using the windows >>>>> environment to test it. Now in this case how can I set this RMIIF in our >>>>> environment variable. >>>> Simply tranpose to Windows this is a param tpo pass to JVM : >>>> -Djava.rmi.server.hostname=<set your IP address here>" >>>> >>>>> Also, will there be any difference in the contents of PosSyncSeetings.xml >>>>> on >>>>> PSS+POS System and MCS System as I'm calling same two services on both >>>>> system. This i the place where I'm a bit confused. >>>> Are you using 2 different DBs on the PSS+POS System (one for each OFBiz >>>> instance) ? Are you relaying through PSS when you send from >>>> POS to MCS (this is the intended basic scheme, of course you can build >>>> your own...) ? >>>> >>>> Jacques >>>> >>>>> -- >>>>> With regards, >>>>> S K Pradeep kumar >>>>> >>>> >>>> >>> >> >> > |
Hi Vince,
Your documentation is really helpful a lot. With the help I got able to resolve some previous configuration mistakes. Thanks. As per your given PosSyncSettings.xml, I'm trying to configure the PUSH and PULL settings. I'm having some confusions. 1. The entitygroup 5501 (PULL) and 5506 (PUSH) will be loaded on both POS Terminals and MCS or we have to load 5501 (PULL) on MCS and 5506 (PUSH) on POS Terminal? 2. Where we can spacify the POS Terminal ID, as I know, in demoretail.xml the POS Terminal ID is defined, that is the place where we have to define or some where else? 3. EntitySync (PULL) record will be loaded on MCS and EntitySync (PUSH) record on POS Terminal? 4. RMIIF variable is available in startofbiz.sh but not in startofbiz.bat, how I can set this variable in startofbiz.bat, should I simply copy and paste that line? 5. As per your PosSyncSettings.xml, how the MCS will be aware of all the POS Terminals attached, is there any place for definition? The way I understood to configure is correct or not? The PULL setting on MCS are as follows in my MCS: <EntitySync entitySyncId="pos-1" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" keepRemoveInfoHours="24" forPullOnly="Y"/> <EntitySyncIncludeGroup entitySyncId="pos-1" entityGroupId="5501"/> <EntitySync entitySyncId="pos-2" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" keepRemoveInfoHours="24" forPullOnly="Y"/> <EntitySyncIncludeGroup entitySyncId="pos-2" entityGroupId="5501"/> <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" frequency="HOURLY" intervalNumber="2" countNumber="-1"/> <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 00:15:00.000" recurrenceRuleId="POSPULL" recurrenceCount="0"/> <RuntimeData runtimeDataId="POSPULL"> <runtimeInfo> <![CDATA[<?xml version="1.0" encoding="UTF-8"?> <ofbiz-ser> <map-HashMap> <map-Entry> <map-Key> <std-String value="entitySyncId"/> </map-Key> <map-Value> <std-String value="pos-1"/> </map-Value> </map-Entry> <map-Entry> <map-Key> <std-String value="remotePullAndReportEntitySyncDataName"/> </map-Key> <map-Value> <std-String value="remotePullAndReportEntitySyncDataRmi"/> </map-Value> </map-Entry> <map-Entry> <map-Key> <std-String value="entitySyncId"/> </map-Key> <map-Value> <std-String value="pos-2"/> </map-Value> </map-Entry> <map-Entry> <map-Key> <std-String value="remotePullAndReportEntitySyncDataName"/> </map-Key> <map-Value> <std-String value="remotePullAndReportEntitySyncDataRmi"/> </map-Value> </map-Entry> </map-HashMap> </ofbiz-ser> ]]></runtimeInfo> </RuntimeData> <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" serviceName="runPullEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPULL"/> ============================================================================================= I know, I'm asking too many questions, but this of your file has helped me a lot and I think I'll be able to set it up well with your great help. Regards, Ajey |
1. Please see notes on documentation wiki.
http://docs.ofbiz.org/display/OFBIZ/Sync+Setup+Notes+and+Example It clearly states what gets loaded where (POS vs. MCS) and why. 2. This is one thing I left out of my notes that is very important. You must create a pos terminal record in the MCS database before starting your pos terminal and attempting to sync. The entity is PosTerminal and the easiest way to add the record is thru webtools. I will update the wiki page. 3. Yes. Again please refer to notes on wiki page. If it is unclear just try it and you will see. 4. I don't do windows so I'm not familiar with how to add it to the .bat file. Syntax is different on windows for adding env. variables in batch files. I think you have to use the word "set" in front of it. You could just add the environment variable to your system. 5. Adding the terminals to PosTerminal on MCS and EntitySync records for each terminal is the only "awareness" MCS has to the terminals. This was one area of confusion for me when going thru this learning curve. You must trust that it is the job of the POS terminal to communicate with the server, not the other way around. The direction of the sync (PUSH or PULL) doesn't matter. The POS terminal initiates all synchronizations. ----- Original Message ----- From: "Ajey.bitin" <[hidden email]> To: [hidden email] Sent: Friday, August 8, 2008 4:00:43 AM (GMT-0700) America/Denver Subject: Re: Problems while PUSH and PULL entity sync process in POS Hi Vince, Your documentation is really helpful a lot. With the help I got able to resolve some previous configuration mistakes. Thanks. As per your given PosSyncSettings.xml, I'm trying to configure the PUSH and PULL settings. I'm having some confusions. 1. The entitygroup 5501 (PULL) and 5506 (PUSH) will be loaded on both POS Terminals and MCS or we have to load 5501 (PULL) on MCS and 5506 (PUSH) on POS Terminal? 2. Where we can spacify the POS Terminal ID, as I know, in demoretail.xml the POS Terminal ID is defined, that is the place where we have to define or some where else? 3. EntitySync (PULL) record will be loaded on MCS and EntitySync (PUSH) record on POS Terminal? 4. RMIIF variable is available in startofbiz.sh but not in startofbiz.bat, how I can set this variable in startofbiz.bat, should I simply copy and paste that line? 5. As per your PosSyncSettings.xml, how the MCS will be aware of all the POS Terminals attached, is there any place for definition? The way I understood to configure is correct or not? The PULL setting on MCS are as follows in my MCS: <EntitySync entitySyncId="pos-1" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" keepRemoveInfoHours="24" forPullOnly="Y"/> <EntitySyncIncludeGroup entitySyncId="pos-1" entityGroupId="5501"/> <EntitySync entitySyncId="pos-2" runStatusId="ESR_NOT_STARTED" syncSplitMillis="600000" keepRemoveInfoHours="24" forPullOnly="Y"/> <EntitySyncIncludeGroup entitySyncId="pos-2" entityGroupId="5501"/> <!-- POSPULL Scheduled Service --> <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" frequency="HOURLY" intervalNumber="2" countNumber="-1"/> <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 00:15:00.000" recurrenceRuleId="POSPULL" recurrenceCount="0"/> <RuntimeData runtimeDataId="POSPULL"> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> <ofbiz-ser> <map-HashMap> <map-Entry> <map-Key> <std-String value="entitySyncId"/> </map-Key> <map-Value> <std-String value="pos-1"/> </map-Value> </map-Entry> <map-Entry> <map-Key> <std-String value="remotePullAndReportEntitySyncDataName"/> </map-Key> <map-Value> <std-String value="remotePullAndReportEntitySyncDataRmi"/> </map-Value> </map-Entry> <map-Entry> <map-Key> <std-String value="entitySyncId"/> </map-Key> <map-Value> <std-String value="pos-2"/> </map-Value> </map-Entry> <map-Entry> <map-Key> <std-String value="remotePullAndReportEntitySyncDataName"/> </map-Key> <map-Value> <std-String value="remotePullAndReportEntitySyncDataRmi"/> </map-Value> </map-Entry> </map-HashMap> </ofbiz-ser> ]]></runtimeInfo> </RuntimeData> <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" serviceName="runPullEntitySync" poolId="pool" runAsUser="system" recurrenceInfoId="POSPULL"/> ============================================================================================= I know, I'm asking too many questions, but this of your file has helped me a lot and I think I'll be able to set it up well with your great help. Regards, Ajey -- View this message in context: http://www.nabble.com/Problems-while-PUSH-and-PULL-entity-sync-process-in-POS-tp16801589p18889161.html Sent from the OFBiz - User mailing list archive at Nabble.com. |
Hi Vince,
again I've to say, great help!! Now the clouds are about to over. One more thing I've in mind which i need to clear with you. As in our current setting, we have a concept of POS Terminals (So many) and another server (One Central Server). To do proper synchronization, we specify IP of the server in entity-sync-rmi of serviceengine.xml. For push, its ok, POS Terminals are calling RMIDispatcher of Central Server (with proper URL), but in case of PULL, it is really confusing to me. Where we need the definitions of all POS Terminals attached? If our Central Server is located somewhere on web, for pull is any kind of DNS setting is required for the network where all POS Terminals are existing for PULL? I know, may be my mind is struggling around the fact what you said "direction of the sync (PUSH or PULL) doesn't matter". Regards, Ajey
|
In reply to this post by Vince Clark
Hi Vince,
just now I was trying with all these settings. I got a long error concerned with RMI when I tried to synchronize the Central Server with the following setting in serviceengine.xml of POS Terminals: <service-location name="entity-sync-rmi" location="rmi://75.127.101.138:8088/RMIDispatcher"/> Let me know if have also faced this during your early setups. The exceptions are: ---- exception report ---------------------------------------------------------- Service [remoteStoreEntitySyncDataRmi] threw an unexpected exception/error Exception: org.ofbiz.service.GenericServiceException Message: RMI Error (error during JRMP connection establishment; nested exception is: java.io.EOFException) ---- stack trace --------------------------------------------------------------- org.ofbiz.service.GenericServiceException: RMI Error (error during JRMP connection establishment; nested exception is: java.io.EOFException) org.ofbiz.service.rmi.RmiServiceEngine.run(RmiServiceEngine.java:58) org.ofbiz.service.rmi.RmiServiceEngine.runSync(RmiServiceEngine.java:41) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:336) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:211) org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:136) org.ofbiz.entityext.synchronization.EntitySyncContext.runPushSendData(EntitySyncContext.java:1011) org.ofbiz.entityext.synchronization.EntitySyncServices.runEntitySync(EntitySyncServices.java:105) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.ofbiz.service.engine.StandardJavaEngine.serviceInvoker(StandardJavaEngine.java:91) org.ofbiz.service.engine.StandardJavaEngine.runSync(StandardJavaEngine.java:53) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:336) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:211) org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:136) org.ofbiz.service.job.GenericServiceJob.exec(GenericServiceJob.java:70) org.ofbiz.service.job.JobInvoker.run(JobInvoker.java:221) java.lang.Thread.run(Unknown Source) java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: java.io.EOFException sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) sun.rmi.server.UnicastRef.newCall(Unknown Source) sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) java.rmi.Naming.lookup(Unknown Source) org.ofbiz.service.rmi.RmiServiceEngine.run(RmiServiceEngine.java:52) org.ofbiz.service.rmi.RmiServiceEngine.runSync(RmiServiceEngine.java:41) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:336) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:211) org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:136) org.ofbiz.entityext.synchronization.EntitySyncContext.runPushSendData(EntitySyncContext.java:1011) org.ofbiz.entityext.synchronization.EntitySyncServices.runEntitySync(EntitySyncServices.java:105) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.ofbiz.service.engine.StandardJavaEngine.serviceInvoker(StandardJavaEngine.java:91) org.ofbiz.service.engine.StandardJavaEngine.runSync(StandardJavaEngine.java:53) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:336) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:211) org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:136) org.ofbiz.service.job.GenericServiceJob.exec(GenericServiceJob.java:70) org.ofbiz.service.job.JobInvoker.run(JobInvoker.java:221) java.lang.Thread.run(Unknown Source) Caused by: java.io.EOFException java.io.DataInputStream.readByte(Unknown Source) ... 24 more -------------------------------------------------------------------------------- 2008-07-09 10:49:54,218 (default-invoker-Thread-8) [ TransactionUtil.java:292:INFO ] [TransactionUtil.setRollbackOnly] transaction rollback only not set, status is STATUS_NO_TRANSACTION 2008-07-09 10:49:54,359 (default-invoker-Thread-8) [GeneralServiceException.java:62 :ERROR] ---- exception report ---------------------------------------------------------- Error running EntitySync [6505], call to store service [remoteStoreEntitySyncDataRmi] failed. (RMI Error (error during JRMP connection establishment; nested exception is: java.io.EOFException)) Exception: org.ofbiz.service.GenericServiceException Message: RMI Error (error during JRMP connection establishment; nested exception is: java.io.EOFException) ---- stack trace --------------------------------------------------------------- org.ofbiz.service.GenericServiceException: RMI Error (error during JRMP connection establishment; nested exception is: java.io.EOFException) org.ofbiz.service.rmi.RmiServiceEngine.run(RmiServiceEngine.java:58) org.ofbiz.service.rmi.RmiServiceEngine.runSync(RmiServiceEngine.java:41) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:336) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:211) org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:136) org.ofbiz.entityext.synchronization.EntitySyncContext.runPushSendData(EntitySyncContext.java:1011) org.ofbiz.entityext.synchronization.EntitySyncServices.runEntitySync(EntitySyncServices.java:105) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.ofbiz.service.engine.StandardJavaEngine.serviceInvoker(StandardJavaEngine.java:91) org.ofbiz.service.engine.StandardJavaEngine.runSync(StandardJavaEngine.java:53) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:336) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:211) org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:136) org.ofbiz.service.job.GenericServiceJob.exec(GenericServiceJob.java:70) org.ofbiz.service.job.JobInvoker.run(JobInvoker.java:221) java.lang.Thread.run(Unknown Source) java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: java.io.EOFException sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) sun.rmi.server.UnicastRef.newCall(Unknown Source) sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) java.rmi.Naming.lookup(Unknown Source) org.ofbiz.service.rmi.RmiServiceEngine.run(RmiServiceEngine.java:52) org.ofbiz.service.rmi.RmiServiceEngine.runSync(RmiServiceEngine.java:41) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:336) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:211) org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:136) org.ofbiz.entityext.synchronization.EntitySyncContext.runPushSendData(EntitySyncContext.java:1011) org.ofbiz.entityext.synchronization.EntitySyncServices.runEntitySync(EntitySyncServices.java:105) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.ofbiz.service.engine.StandardJavaEngine.serviceInvoker(StandardJavaEngine.java:91) org.ofbiz.service.engine.StandardJavaEngine.runSync(StandardJavaEngine.java:53) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:336) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:211) org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:136) org.ofbiz.service.job.GenericServiceJob.exec(GenericServiceJob.java:70) org.ofbiz.service.job.JobInvoker.run(JobInvoker.java:221) java.lang.Thread.run(Unknown Source) Caused by: java.io.EOFException java.io.DataInputStream.readByte(Unknown Source) ... 24 more -------------------------------------------------------------------------------- Suggest me the needful. Thanks, Ajey |
Administrator
|
In reply to this post by Vince Clark
Hi Vince,
I will . take care of Windows differences in your Wiki document . put a link from the trunk file . put a link from WIki FAQ Thanks a lot for this complete how to ! Jacques From: "Vince M. Clark" <[hidden email]> > 1. Please see notes on documentation wiki. > http://docs.ofbiz.org/display/OFBIZ/Sync+Setup+Notes+and+Example > It clearly states what gets loaded where (POS vs. MCS) and why. > > 2. This is one thing I left out of my notes that is very important. You must create a pos terminal record in the MCS database > before starting your pos terminal and attempting to sync. The entity is PosTerminal and the easiest way to add the record is thru > webtools. I will update the wiki page. > > 3. Yes. Again please refer to notes on wiki page. If it is unclear just try it and you will see. > > 4. I don't do windows so I'm not familiar with how to add it to the .bat file. Syntax is different on windows for adding env. > variables in batch files. I think you have to use the word "set" in front of it. You could just add the environment variable to > your system. > > 5. Adding the terminals to PosTerminal on MCS and EntitySync records for each terminal is the only "awareness" MCS has to the > terminals. This was one area of confusion for me when going thru this learning curve. You must trust that it is the job of the POS > terminal to communicate with the server, not the other way around. The direction of the sync (PUSH or PULL) doesn't matter. The > POS terminal initiates all synchronizations. > > ----- Original Message ----- > From: "Ajey.bitin" <[hidden email]> > To: [hidden email] > Sent: Friday, August 8, 2008 4:00:43 AM (GMT-0700) America/Denver > Subject: Re: Problems while PUSH and PULL entity sync process in POS > > > Hi Vince, > > Your documentation is really helpful a lot. With the help I got able to > resolve some previous configuration mistakes. Thanks. As per your given > PosSyncSettings.xml, I'm trying to configure the PUSH and PULL settings. I'm > having some confusions. > > 1. The entitygroup 5501 (PULL) and 5506 (PUSH) will be loaded on both POS > Terminals and MCS or we have to load 5501 (PULL) on MCS and 5506 (PUSH) on > POS Terminal? > > 2. Where we can spacify the POS Terminal ID, as I know, in demoretail.xml > the POS Terminal ID is defined, that is the place where we have to define or > some where else? > > 3. EntitySync (PULL) record will be loaded on MCS and EntitySync (PUSH) > record on POS Terminal? > > 4. RMIIF variable is available in startofbiz.sh but not in startofbiz.bat, > how I can set this variable in startofbiz.bat, should I simply copy and > paste that line? > > 5. As per your PosSyncSettings.xml, how the MCS will be aware of all the POS > Terminals attached, is there any place for definition? The way I understood > to configure is correct or not? The PULL setting on MCS are as follows in my > MCS: > > <EntitySync entitySyncId="pos-1" runStatusId="ESR_NOT_STARTED" > syncSplitMillis="600000" > keepRemoveInfoHours="24" forPullOnly="Y"/> > <EntitySyncIncludeGroup entitySyncId="pos-1" entityGroupId="5501"/> > > <EntitySync entitySyncId="pos-2" runStatusId="ESR_NOT_STARTED" > syncSplitMillis="600000" > keepRemoveInfoHours="24" forPullOnly="Y"/> > <EntitySyncIncludeGroup entitySyncId="pos-2" entityGroupId="5501"/> > > <!-- POSPULL Scheduled Service --> > <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" > frequency="HOURLY" intervalNumber="2" countNumber="-1"/> > <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 > 00:15:00.000" recurrenceRuleId="POSPULL" recurrenceCount="0"/> > <RuntimeData runtimeDataId="POSPULL"> > <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> > <ofbiz-ser> > <map-HashMap> > <map-Entry> > <map-Key> > <std-String value="entitySyncId"/> > </map-Key> > <map-Value> > <std-String value="pos-1"/> > </map-Value> > </map-Entry> > <map-Entry> > <map-Key> > <std-String value="remotePullAndReportEntitySyncDataName"/> > </map-Key> > <map-Value> > <std-String value="remotePullAndReportEntitySyncDataRmi"/> > </map-Value> > </map-Entry> > <map-Entry> > <map-Key> > <std-String value="entitySyncId"/> > </map-Key> > <map-Value> > <std-String value="pos-2"/> > </map-Value> > </map-Entry> > <map-Entry> > <map-Key> > <std-String value="remotePullAndReportEntitySyncDataName"/> > </map-Key> > <map-Value> > <std-String value="remotePullAndReportEntitySyncDataRmi"/> > </map-Value> > </map-Entry> > > </map-HashMap> > </ofbiz-ser> > ]]></runtimeInfo> > </RuntimeData> > <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" > runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" > serviceName="runPullEntitySync" poolId="pool" runAsUser="system" > recurrenceInfoId="POSPULL"/> > ============================================================================================= > > I know, I'm asking too many questions, but this of your file has helped me a > lot and I think I'll be able to set it up well with your great help. > > Regards, > > Ajey > -- > View this message in context: > http://www.nabble.com/Problems-while-PUSH-and-PULL-entity-sync-process-in-POS-tp16801589p18889161.html > Sent from the OFBiz - User mailing list archive at Nabble.com. > > |
Administrator
|
In reply to this post by skpradeepkumar
From: "Jacques Le Roux" <[hidden email]>
> Hi Vince, > > I will > . take care of Windows differences in your Wiki document For those interested is a snippet of DOS cmd to set the local machine IP address as it's done in startofbiz.sh. I will later update startofbiz.bat for this and more... Echo off ipconfig | find "IP." | find /v "::" | find /v "0.0.0.0" > tmp.tmp FOR /F "tokens=2* delims=:" %%A IN (tmp.tmp) DO FOR %%B IN (%%A) DO SET IPADDR=%%B del tmp.tmp > . put a link from the trunk file done in revision 684192. > . put a link from WIki FAQ done Jacques > > Thanks a lot for this complete how to ! > > Jacques > > From: "Vince M. Clark" <[hidden email]> >> 1. Please see notes on documentation wiki. >> http://docs.ofbiz.org/display/OFBIZ/Sync+Setup+Notes+and+Example >> It clearly states what gets loaded where (POS vs. MCS) and why. >> >> 2. This is one thing I left out of my notes that is very important. You must create a pos terminal record in the MCS database >> before starting your pos terminal and attempting to sync. The entity is PosTerminal and the easiest way to add the record is thru >> webtools. I will update the wiki page. >> >> 3. Yes. Again please refer to notes on wiki page. If it is unclear just try it and you will see. >> >> 4. I don't do windows so I'm not familiar with how to add it to the .bat file. Syntax is different on windows for adding env. >> variables in batch files. I think you have to use the word "set" in front of it. You could just add the environment variable to >> your system. >> >> 5. Adding the terminals to PosTerminal on MCS and EntitySync records for each terminal is the only "awareness" MCS has to the >> terminals. This was one area of confusion for me when going thru this learning curve. You must trust that it is the job of the >> POS terminal to communicate with the server, not the other way around. The direction of the sync (PUSH or PULL) doesn't matter. >> The POS terminal initiates all synchronizations. >> >> ----- Original Message ----- >> From: "Ajey.bitin" <[hidden email]> >> To: [hidden email] >> Sent: Friday, August 8, 2008 4:00:43 AM (GMT-0700) America/Denver >> Subject: Re: Problems while PUSH and PULL entity sync process in POS >> >> >> Hi Vince, >> >> Your documentation is really helpful a lot. With the help I got able to >> resolve some previous configuration mistakes. Thanks. As per your given >> PosSyncSettings.xml, I'm trying to configure the PUSH and PULL settings. I'm >> having some confusions. >> >> 1. The entitygroup 5501 (PULL) and 5506 (PUSH) will be loaded on both POS >> Terminals and MCS or we have to load 5501 (PULL) on MCS and 5506 (PUSH) on >> POS Terminal? >> >> 2. Where we can spacify the POS Terminal ID, as I know, in demoretail.xml >> the POS Terminal ID is defined, that is the place where we have to define or >> some where else? >> >> 3. EntitySync (PULL) record will be loaded on MCS and EntitySync (PUSH) >> record on POS Terminal? >> >> 4. RMIIF variable is available in startofbiz.sh but not in startofbiz.bat, >> how I can set this variable in startofbiz.bat, should I simply copy and >> paste that line? >> >> 5. As per your PosSyncSettings.xml, how the MCS will be aware of all the POS >> Terminals attached, is there any place for definition? The way I understood >> to configure is correct or not? The PULL setting on MCS are as follows in my >> MCS: >> >> <EntitySync entitySyncId="pos-1" runStatusId="ESR_NOT_STARTED" >> syncSplitMillis="600000" >> keepRemoveInfoHours="24" forPullOnly="Y"/> >> <EntitySyncIncludeGroup entitySyncId="pos-1" entityGroupId="5501"/> >> >> <EntitySync entitySyncId="pos-2" runStatusId="ESR_NOT_STARTED" >> syncSplitMillis="600000" >> keepRemoveInfoHours="24" forPullOnly="Y"/> >> <EntitySyncIncludeGroup entitySyncId="pos-2" entityGroupId="5501"/> >> >> <!-- POSPULL Scheduled Service --> >> <RecurrenceRule recurrenceRuleId="POSPULL" untilDateTime="" >> frequency="HOURLY" intervalNumber="2" countNumber="-1"/> >> <RecurrenceInfo recurrenceInfoId="POSPULL" startDateTime="2000-01-01 >> 00:15:00.000" recurrenceRuleId="POSPULL" recurrenceCount="0"/> >> <RuntimeData runtimeDataId="POSPULL"> >> <runtimeInfo><![CDATA[<?xml version="1.0" encoding="UTF-8"?> >> <ofbiz-ser> >> <map-HashMap> >> <map-Entry> >> <map-Key> >> <std-String value="entitySyncId"/> >> </map-Key> >> <map-Value> >> <std-String value="pos-1"/> >> </map-Value> >> </map-Entry> >> <map-Entry> >> <map-Key> >> <std-String value="remotePullAndReportEntitySyncDataName"/> >> </map-Key> >> <map-Value> >> <std-String value="remotePullAndReportEntitySyncDataRmi"/> >> </map-Value> >> </map-Entry> >> <map-Entry> >> <map-Key> >> <std-String value="entitySyncId"/> >> </map-Key> >> <map-Value> >> <std-String value="pos-2"/> >> </map-Value> >> </map-Entry> >> <map-Entry> >> <map-Key> >> <std-String value="remotePullAndReportEntitySyncDataName"/> >> </map-Key> >> <map-Value> >> <std-String value="remotePullAndReportEntitySyncDataRmi"/> >> </map-Value> >> </map-Entry> >> >> </map-HashMap> >> </ofbiz-ser> >> ]]></runtimeInfo> >> </RuntimeData> >> <JobSandbox jobId="POSPULL" jobName="Pull Data from MCS" >> runtimeDataId="POSPULL" runTime="2000-01-01 00:00:00.000" >> serviceName="runPullEntitySync" poolId="pool" runAsUser="system" >> recurrenceInfoId="POSPULL"/> >> ============================================================================================= >> >> I know, I'm asking too many questions, but this of your file has helped me a >> lot and I think I'll be able to set it up well with your great help. >> >> Regards, >> >> Ajey >> -- >> View this message in context: >> http://www.nabble.com/Problems-while-PUSH-and-PULL-entity-sync-process-in-POS-tp16801589p18889161.html >> Sent from the OFBiz - User mailing list archive at Nabble.com. >> >> > |
Free forum by Nabble | Edit this page |