HomeEvergreen: Basic System Admin FunctionsErrorstextcode:OFFLINE_FILE_ERROR

8.2. textcode:OFFLINE_FILE_ERROR

When this error occurs, the client is most likely attempting to upload an offline transaction.

It will appear to the user as such:

Check User Permissions

First, check to ensure that the particular staff user account has permissions set to upload offline transactions.


Grab Information About The Incident

The error, if you have a screenshot, should contain several important pieces of information.

The "description" as shown in the staff client will be replicated at offline.session_description.

The handle on the window should be in the format of [tab number]:[username]@[workstation].[domain]. That handle will appear as such:

Workstation as denoted within the tab handle is replicated in offline.script_workstation. In our example, we would enter the psql prompt and execute:

select * from offline.script where workstation like '%oyce%';

This is a wildcard search performed with the percent sign within the table that will present any records of workstations with names containing "oyce". Be careful, this is case-sensitive! This is why we scrape the initial capital letter off, to provide a unique string to the select that will limit or trim the results to a more palatable index.


Locate Offline Directory Paths

Two sets of directory structures exist;

/openils/var/data/offline//pending/[org] - for transactions pending

/openils/var/data/offline//archive/[org] - for transactions completed

In the database, this path was shown in the previous example. The number past the archive/pending path is generally the org unit ID as Evergreen sees it.

Verify Offline Directory Path Ownership

Change directory to the offline directory path, and as the opensrf user execute:

find /openils/var/data/offline/ -not -user opensrf -printf '%u %p\n'

Any files not owed by opensrf should appear, if all is correct, the prompt should return blank.


Verify Apache Process Ownership

Apache is generally configured to be executed as root, but subsequent processes are owned by the opensrf user. This is validated in 1.6 and newer systems by examining /etc/apache2/envvars as root.

There is a specific item to validate, and this is to ensure that APACHE_RUN_USER=opensrf, rather than the system default of APACHE_RUN_USER=www-data.

If it is in fact attributed to www-data, this value must be changed to opensrf, and the Apache services restarted.


Verify Proper Mounts of Paths (For Multi Brick or Distributed Systems)

If the system is a multi-brick or distributed system, log into each brick and execute 'mount -a' to ensure all mount points are properly connected. This command is usually executed by default, but if for any reason it fails to connect properly to the /openils directory, many issues may result (such as this one). The command looks at the list of mountpoints, and automatically connects to any not previously connected.


Ensure Existence of All Intended Files

When an offline transaction is uploaded for processing, a [workstation].log file is created in the /openils/var/data/offline//pending/[org]/[session]/ directory. You must validate that all files marked for processing from the staff client actually exist, or the same "an offline file could not be created or accessed" error will occur. This would be logical, as one or more of the files listed or marked for processing does not, in fact, exist on the server.

At this point, you have most likely found the issue and corrected it. Offline transactions should process normally.

Related Pages
This page was: Helpful | Not Helpful