docs: public Object doRemoteCommand(String strCommand, Map<String, Object> properties) throws RemoteException, DBException
      {
          if (DBParams.RETRIEVE_USER_PROPERTIES.equalsIgnoreCase(strCommand))
          {
              String strRegistrationKey = null;
              if (properties != null)
                  strRegistrationKey = (String)properties.get(Constants.TIP);
              if (strRegistrationKey == null)
                  strRegistrationKey = Params.SCREEN;
              PropertyOwner propertyOwner = this.retrieveUserProperties(strRegistrationKey);
              Map<String,Object> propertiesReturn = null;
              if (propertyOwner != null)
                  propertiesReturn = propertyOwner.getProperties();
              if (propertyOwner instanceof UserProperties)    // Always
                  ((UserProperties)propertyOwner).free();
              return propertiesReturn;
          }
          else if (DBParams.SAVE_USER_PROPERTIES.equalsIgnoreCase(strCommand))
          {
              String strRegistrationKey = null;
              if (properties != null)
                  strRegistrationKey = (String)properties.get(Constants.TIP);
              if (strRegistrationKey == null)
                  strRegistrationKey = Params.SCREEN;
              PropertyOwner propertyOwner = this.retrieveUserProperties(strRegistrationKey);
              if (propertyOwner instanceof UserProperties)    // Always
              {
                  propertyOwner.setProperties(properties);
                  ((UserProperties)propertyOwner).free();
              }
              return Integer.toString(Constants.NORMAL_RETURN);
          }
          return super.doRemoteCommand(strCommand, properties);   // Override this to handle this command
      }