RI Title
RI logo


Using a Guru Agent to synchronize most Guru Objects between geographic location is more efficient than using Update/Backup connections. This is because the Agent runs at some determined interval while the Update/Backup occurs every time the values are queried when loading or selecting from a list. The limitation is that the objects are not available "live" and could take up to as long as the interval is set to update, typically every 30 minutes. Usually RiDatalogs and RiErrorLogs, and other activity logs can be safely excluded from the sync. The Agent should run on the server with the least number of Guru clients. Alternatively, Guru Enterprise uses a "clone" technique which is intended for very low latency connections that typically requires servers physically located in the same server rack and is intended as a load balanced pair. Before running the agent for the first time, use the Sync Until app to copy the data. This will streamline the first run so that there isn't a large backlog of objects requiring transfer.



To Create a Guru Server Sync Agent:
  1. Launch Guru Agent Editor from the Guru Apps button.
  2. On the Sources > source1 tab, choose Match On field to open the Match-On (Source Selection Criteria).
    Enter "
    ri.sys.ObjClass!=GZPEXPORT|RiAutoStart|RiAutoStart_OFF|RiErrorLog|RiAdminLog|RiEquipDiagLog|RiGuruAddress|RiDataLog" (notice the ! before the =)
    -or- choose
    ri.sys.ObjClass and then choose any entry in the right Key values column and press CTL+A to select all. Exclude some items by carefully scrolling down the list and hold CTRL and left mouse click on the following suggested entries.RiDataLog, RiErrorLog, RiEventLog, RiLotSummary, RiTestData, choose Paste: Key=Value to add the values to the Match On field, then choose Ok.
  3. Choose the + button to the right of the first Match On: field to add a new line.
  4. Choose the second Match On field to open the Match-On (Source Selection Criteria) and select ri.sys.ObjFormat from the Keys column and rbf on the values column, then Paste: Key=Value
  5. (Optional) Repeat for any custom ObjClasses you may have. (contact [email protected] for help)
  6. Choose the Connection > Location: field and enter "127.0.0.1:50010" or "localhost:50010" to connect to the local Guru.
    Note: When an agent is connecting to the Guru Server on the same machine, it should use TCP port 50010 that is reserved for local Guru connections.
  7. Choose On Successful Copy > Copied Files Tag and enter "local.ri.sys.ServerSync=true". This key and value can be any value as long as it starts with "local." This prevents transferring the same object multiple times when the "Ignore Already Copied Files" is selected.
  8. Now, under Destinations > dest1 tab, choose guru from the Type of Destination.
  9. Select Guru from the drop down list in Destinations > dest1 > Type of Destination field on the right.
  10. Enter the remote server's IP address or hostname to the Location field followed by ":50000" (the guru tcp port).
    Example: "10.0.24.12:50000"
  11. Choose Edit > Add Source to add an additional tab to the Source panel.
  12. For each of the two MatchOn entries from the source1 tab, use CTRL+C to copy each line, then CTRL+V to paste into the Match On (Source Selection Criteria) dialog for the source2 tab.
  13. Enter the remote server's IP address or hostname to the Location field followed by ":50000" (the guru tcp port).
  14. Manually select the Copied Files Tag from the source1 tab and use CTRL+C to copy each line, then CTRL+V to paste into the Match On (Source Selection Criteria) dialog for the source2 tab.
  15. Choose Edit > Add Destination to add an additional tab to the Destination panel.
  16. (Optional) Choose Rename by right clicking on each of the source and destination tabs. Please note that the Get Files From field will still use the internal identifiers (source1, source2,etc.)
  17. Choose Settings > Execution to open the Execution window
  18. Change Interval to 0 hrs and 30 minutes. The agent schedules the next start time based on this interval after completing the current run.
  19. Choose Guru > Save and enter the name of the Agent (i.e."Server Sync Agent") and select the Guru ID of the server that will run the Agent in Server's Guru ID in the System ID field and choose Save.


How to Sync Guru All Objects Before Running Sync Agent
Before running the agent for the first time, use the Sync Until app to copy the data. This will streamline the first run so that there isn't a large backlog of objects requiring transfer.
  1. From the one Guru server, launch by choosing Apps > Sync Util from the Guru bar.
  2. Select the target Guru server as Guru B.
  3. Choose Connect Gurus button to initialize the connection.
  4. (Optional) Filter Objects by choosing Filtered Compare, then picking a collection of Attribute Key pairs with "Key1", "Key2"... similar to Guru Browser, then press Compare Gurus again to update the columns.
  5. Choose Compare Gurus button to populate the "New Object on Guru A", "New Revision on Guru A", "New Revision on Guru B" columns.
  6. (Optional) Toggle between Title, ObjClass, and Name to identify the objects being copied.
  7. Choose Clone Guru A and Guru B or both Sync Up (Update Guru B from Guru A) buttons in both the "New Object on Guru A" and "New Revision on Guru A" to leave local revisions out of date until needed.

Figure 1: Copy Agent Editor


Figure 2: Match-On (Source Selection Criteria) with most ObjClasses Selected

NOTE: Prefer using inverse logic, i.e. ri.sys.ObjClass!=GZPEXPORT|RiErrorLog|RiAdminLog|RiDataLog



Include Object Classes (Typical):
ACSdata
ACSdataSave
RiAdminLog
RiAppDependent
RiApplication
RiAutoStart
RiAutoStart_OFF
RiBaseInstDef
RiCalibrationKit
RiCalList
RiCert
RiDataViewPanel
RiDeviceControlDef
RiDeviceDef
RiDevicePins
RiDibCal
RiDibDef
RiDigitalPattern
RiEquipDiagLog
RiFixtureCal
RiFixtureClassDef
RiFixtureDef
RiflMasterDef
RiflNodeDef
RiGroup
RiGroupMembership
RiGuruAddress
RiInstrumentCal
RiInstrumentDef
RiMathDef
RiModuleDef
RiPatch
RiPermission
RiPermissionUser
RiPreferences
RiShortCut
RiSimulationDef
RiSoftwareUpdate
RiSystem
RiSystemID
RiTesterCalLog
RiTesterDef
RiTestplan
RiTestplanSymbols
RiTestSessionDef
RiUser
RiUserApp
RiUserPassword
RiWaveform

Exclude these Object Classes:
GZPEXPORT
RiDataLog
RiErrorLog
RiEventLog
RiLotSummary
RiTestData

Figure 3: Source 1 Match on + New Match On Displayed


Figure 4: Match On ObjFormat=rbf (2nd row)


Figure 5: Location (localhost:50010)


Figure 6: Copy Agent Editor (mostly completed)


Figure 7: Execution Settings


Figure 8: Save Dialog

Hide details for As of Sept 2020, here are the ObjClass options at RI. Your facility likely has dramatically less of them.As of Sept 2020, here are the ObjClass options at RI. Your facility likely has dramatically less of them.

ACSdata
ACSdataSave
ACSlimits
BCSdata
BCSdataSave
BCSlimits
BCSlimts
Digital Vector
DigitalVector
GbgTest
GbgTest_SAV
GuruAgentConfig
GuruAgentLogFile
GZPEXPORT
JbDataFile
Manifest
MtpDeviceTestPlan
ri.app.guru.browser.GEU43Y2A
RiAdminLog
RiAppDependent
RiApplication
RiApplicationDef
RiApplicationLog
RiAutoStart
RiAutoStart_OFF
RiAutoStart_SAV
RiBaseInstDef
RiCable
RiCalibrationKit
RiCalList
RiCert
RiDatabase
RiDataLog
RiDataLogSchema
RiDataViewPanel
RiDeviceControlDef
RiDeviceDef
RiDevicePins
RiDibCal
RiDibDef
RiDigitalFilter
RiDigitalPattern
RiDocGroup
RiDocNode
RiDut
RiDutInterface
RiEquipDiagLog
RiErrorLog
RiEventLog
RiFixtureCal
RiFixtureClassDef
RiFixtureDef
RiflMasterDef
RiflNodeDef
RiflPacketDef
RiflSessionDef
RiflStateData
RiGroup
RiGroupMembership
RiGuruAddress
RiInstAlias
RiInstControlPanels
RiInstrumentCal
RiInstrumentDef
RiInstViewPanels
RiKey
RiLink
RiManifest
RiMathDef
RiModuleDef
RiPackage
RiPatch
RiPatchInclude
RiPatternList
RiPermission
RiPermissionUser
RiPersistentState
RiPreferences
RiSavedData
RiShortCut
RiSimulationDef
RiSoftwareUpdate
RiSystem
RiSystemID
RiTestData
RiTestdataContainer
RiTesterCalLog
RiTesterDef
RiTestExec
RiTestplan
RiTestplanExeDef
RiTestplanSymbols
RiTestplanVars
RiTestSessionDef
RiTimCode
RiUser
RiUserApp
RiUserPassword
RiVector
RiVectorFormat
RiWaveform
RiWaveformList
RlindaSequence
RtAppDef
RtScript
WebPage
WebResource


PrintEmail Link
https://roos.com/docs/RBEH-BTC2XP
ROOS INSTRUMENTS CONFIDENTIAL AND PROPRIETARY
©2020-2022 Roos Instruments, Inc. All rights reserved.