The <use_cache/> directive on the Agent can be used to tell it to NOT reach out to the ServiceNow instance to get the latest table schemas. It will instead attempt to find the table schema based on the local file system it is installed in. This can be used when you want to block the Agent from hitting the ServiceNow instance and instead use the provided schemas.



Agent Config

You will include the <use_cache/> directive in your agent.xml file within the <task> brackets like so:

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> 
<config> 
	<agent> 
		<subscribe> 
			<task> 
				<task_name>example_subscribe</task_name> 
				<message_connection password="encrypt:XXXX" user="XXXX" queue="..." >amqp://example.perspectium.net</message_connection> 
				<instance_connection password="encrypt:XXXX" user="XXXX">http://example.service-now.com</instance_connection> 
				. . . 
				<use_cache/> 
			</task> 
		</subscribe> 
	</agent> 
</config> 


Agent Schemas

When the Agent receives a message from the instance “acme” it will attempt to grab the Perspectium created schema from the acme instance, authenticating based off of the user in the <instance_connection>. After successfully grabbing the schema for a specific table it will place that XML file in the local file system in the bin directory of the Agent. More specifically it will create a folder in the bin directory named acme.service-now.com.schemas_directory (based off the instance name acme). Using the use_cache directive will have the Agent pull the schemas from here.

If you intend to use this and you do not have this structure already, create this folder and import the table schemas. You can get a ZIP file of the schemas you currently need from your instance by running the Exporting Table Schemas option.

You could also manually grab them by saving the file generated by going to: 

https://acme.service-now.com/task.do?PSP_SCHEMA

per your ServiceNow instance and per table.



Possible Errors

If you are using this be aware that the replication will fail if:

  1. You do not have the directory for the schemas based off the instance name

  2. You do not have a table schema XML file for the table in the message

  3. You do not have the proper XML structure of this schema

You should also be aware that this means you will no longer get the updated schemas in the event of structure changes to the table or schemas pertaining to a new table.