\r
public class TSMLister implements IDirectoryLister {\r
\r
- private static final String DELIMITER = "/";\r
+ private static final String DELIMITER = System.getProperty("tsm.delimiter", "/");\r
private static final String NODENAME = System.getProperty("tsm.nodename", "JOBENGINE");\r
- private static final String FSNAME = System.getProperty("tsm.fsname", "JOBENGINE");\r
- private static final String ALTERNATE_FSNAME = System.getProperty("tsm.fsname.alternate", "JOBENGINE");\r
- private static final String HLNAME = System.getProperty("tsm.hlname", "JOBENGINE");\r
- private static final String LLNAMEQUALIFIER = System.getProperty("tsm.llname.qualifier", File.separator);\r
+ private static final String FSNAME = System.getProperty("tsm.fsname", "/JOBENGINE");\r
+ private static final String ALTERNATE_FSNAME = System.getProperty("tsm.fsname.alternate");\r
+ private static final String HLNAME = System.getProperty("tsm.hlname", "/JOBENGINE");\r
private static final Logger logger = LogManager.getLogger();\r
private TSMBufferedClient client;\r
\r
\r
String currentFileName = fileName;\r
logger.info("Getting {}, {}, {}", FSNAME, HLNAME, currentFileName);\r
- TSMBackupFileObject backupFileObject = client.getActiveBackupFileObject(FSNAME, DELIMITER, DELIMITER + currentFileName);\r
+ TSMBackupFileObject backupFileObject = client.getActiveBackupFileObject(FSNAME, HLNAME, DELIMITER + currentFileName);\r
\r
//probaljuk meg a masik tarbol\r
if (backupFileObject == null) {\r
logger.info("Getting {}, {}, {}", ALTERNATE_FSNAME, HLNAME, currentFileName);\r
- backupFileObject = client.getActiveBackupFileObject(ALTERNATE_FSNAME, DELIMITER, DELIMITER + currentFileName);\r
+ backupFileObject = client.getActiveBackupFileObject(ALTERNATE_FSNAME, HLNAME, DELIMITER + currentFileName);\r
}\r
\r
//probaljuk meg kiterjesztes nelkul is\r
// } catch (Exception e) {\r
// logger.info(e.getMessage());\r
// }\r
- TSMOutputStream outputStream = new TSMOutputStream(client, FSNAME, DELIMITER, remoteFile);\r
+ TSMOutputStream outputStream = new TSMOutputStream(client, FSNAME, HLNAME, DELIMITER, remoteFile);\r
outputStream.open();\r
return outputStream;\r
}\r
package user.commons.remotestore;\r
\r
import java.io.FileNotFoundException;\r
+import java.io.IOException;\r
import java.io.OutputStream;\r
\r
import user.commons.RemoteFile;\r
private long sizeEstimate;\r
\r
//highLevelName == delimiter\r
- public TSMOutputStream(TSMBufferedClient client, String filespaceName, String highLevelName, RemoteFile remoteFile) {\r
+ public TSMOutputStream(TSMBufferedClient client, String filespaceName, String highLevelName, String delimiter, RemoteFile remoteFile) {\r
this.client = client;\r
this.filespaceName = filespaceName;\r
this.highLevelName = highLevelName;\r
- this.fileName = remoteFile.getName();\r
+ this.fileName = delimiter + remoteFile.getName();\r
this.sizeEstimate = remoteFile.getSize();\r
}\r
\r
}\r
\r
public void open() throws TSMException, FileNotFoundException {\r
- backupObject = new TSMBackupFileObject(filespaceName, highLevelName, highLevelName + fileName);\r
+ backupObject = new TSMBackupFileObject(filespaceName, highLevelName, fileName);\r
backupObject.setSizeEstimate(sizeEstimate);\r
}\r
\r
@Override\r
- public void write(byte[] buffer, int off, int byteCount) {\r
+ public void write(byte[] buffer, int off, int byteCount) throws IOException {\r
if (client != null) {\r
if (!initialized) {\r
client.setBufferSize(byteCount);\r
client.send(buffer, backupObject, byteCount);\r
} catch (Exception e) {\r
e.printStackTrace();\r
+ throw new IOException(e);\r
}\r
}\r
}\r
throw new TSMException(dsmHandle, rc);\r
object.bytesWorked(byteCount);\r
} catch (Exception e) {\r
+\r
vote(TSMAPIConstants.DSM_VOTE_ABORT);\r
throw e;\r
}\r
} catch (Exception e) {\r
logger.catching(e);\r
}\r
- if (result != TSMAPIConstants.DSM_RC_OK)\r
- throw new TSMException(dsmHandle, rc, endTxnExOut.getReason());\r
+\r
+ if (result == TSMAPIConstants.DSM_RC_CHECK_REASON_CODE) {\r
+ logger.error("dsmEndTxnEx error, reason code {}", endTxnExOut.getReason());\r
+ } else {\r
+ if (result != TSMAPIConstants.DSM_RC_OK)\r
+ throw new TSMException(dsmHandle, rc, endTxnExOut.getReason());\r
+ }\r
+\r
return result;\r
}\r
}\r