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" <[EMAIL PROTECTED]> > To: [email protected] > 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" <[EMAIL PROTECTED]> >> To: [email protected] >> 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.
