README Driver File Contents (SCRUtilityA02.zip)

COMMANDLINES:          

The following command is given for the root SDK directory.  Running the program from the 
demo\Common directory will not work because of the the current package designation.  The 
classpath environment variable must be set as specified in the readme in the main directory as 
well in order to compile and run the programs correctly.

   Compiling-
      javac demo\Common\*.java




GENERAL HELP:




RESTRICTIONS:

ManagementPath currently only obtains one controller from the UTM agent.  SetControllerToFailUnfail 
and VolumeManager may need another address to the other controller to function as desired.


PROGRAMMING NOTES:

ManagementPath:




SYMbolClient:
Connecting to a controller:
   1>  Create a SYMbolAPIClientV1 class with the parameters IP address, m_RawClient.PORT, and a 
       boolean.  m_RawClient specifies the port number for the array, and the boolean is true if 
       the connection to the array is through TCP and false for UDP.
       
   2>  Create a ControllerDescriptor for the controller to connect to on the array.  This is done
       by the ManagementClass in the sample code.
   
   3>  Bind to the controller using the ControllerDescriptor and the 
       SYMbolAPIClientV1.bindToController() method.
       
   4>  Check the return code returned by the method to determine if the bind was successsful.  
       ReturnCode.RETCODE_OK signifies success, and other codes indicate the attempt failed.
       
Closing a connection to a controller:
   The connection to the controller can be closed using the SYMbolAPIClientV1.close() method.  This
   will close socket and allow another device to connect.  If too many sockets are left open, the
   controller not be reachable on the network.


StateWatcher:
Keeping a current object bundle:

   A separate thread should be used to keep track of the current object bundle since the polling 
   can take a long time to return.  
   
   1>  Connect to the controller on the array to watch.  The SYMbolClient and ManagementPath 
       classes are used in the sample code to perform this task.
       
   2>  Create a ChangeQueryDescriptor and set the ConfigGeneration number and Mel Sequence number
       to a value that will ensure that a change will be returned, such as -1.  Also use the 
       ChangeQueryDescriptor.setMaxWait() method to specify the amount of time the controller waits
       before responding.
   
   The next steps are repeated:  
   
   3>  Set the timeout for the SYMbolAPIClientV1 using the SYMbolAPIClientV1.setTimeout() method
       and ProcedureTimeout class.
   
   4>  Use the SYMbolAPIClientV1.getChangeInfo() method to get the current configuration information.
       If the Mel Sequence Number or the Configuration Number is different from the last numbers 
       recieved a the object bundle needs to be updated.
       
   5>  Update the object bundle by first setting the timeout using the 
       SYMbolAPIClientV1.setTimeout() method and ProcedureTimeout class.  Then use the 
       SYMbolAPIClientV1.getObjectBundle() method to obtain the bundle.
   

Utility:
Setting the password for the SYMbolAPIClientV1 class:
   
   The SYMbolAuthGenerator class is used to generate the proper authentication infomation on the 
   client.  This class must be updated whenever an array configuration change occurs.  As a result
   this class should be set right before the SYMbol call is made.
   
   1>  Create an SYMbolAuthGenerator class with the array's internet address and storage array id.
   
   2>  Set the timeout for the array using the SYMbolAPIClientV1.setTimeout method.  Recommended 
       times can be found from the ProcedureTimeout.getProcTimeout() method.
       
   3>  Use the method SYMbolAPIClientV1.getChangeInfo() to obtain the current configuration 
       information.
       
   4>  Add the password and configuration number to the SYMbolAuthGenerator class using the 
       SYMbolAuthGenerator.setConfigGeneration() and SYMbolAuthGenerator.setPassword() methods.

Utility.rawCompare:
   This method is usefull in comparing VolumeRefs, DriveRefs, ControllerRefs, and other classes 
   that extend the SYMbolRef class.  The byte array representation of the SYMbolRefs are obtained
   using the SYMbolRef.getRefToken() method.  
   
Utility.bytesToString:
   This method is usefull in translating VolumeRefs, DriveRefs, ControllerRefs, and other classes 
   that extend the SYMbolRef class into a string representation.  The byte array representation of 
   the SYMbolRefs are obtained using the SYMbolRef.getRefToken() method.  

Utility.findTray:
   This method is used to find the slot location of a tray.  It is acceptable for this function to
   return null under certain situations.
Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: ftp, load: 0.89