用例如下:
如果写入日志文件失败,则应回退相应的DB事务。
因此,应以事务处理方式执行写入文件的操作。
我选择了Apache Commons Transaction库。
还有一个问题,那就是我没有找到更合适的文档或示例,这让我无法走得更远。
我创建了FileResourceManager的实例:
FileResourceManager frm = new FileResourceManager(“ c:\ cur”,“ c:\
cur”,true,logger);
从本Apache Commons
Transaction教程了解到,我应该实现以下步骤:
开始交易:
frm.start();
获取交易ID:
transactionId = frm.generatedUniqueTxId();
需要的调用方法,例如带有transactionId和resourceId的writeResource:
frm.writeResource(transactionId, resourceId);
这是模棱两可的:
a)我该如何resourceId
与真实资源联系起来,以便我可以跨事务地写作?
b)我现在将如何处理交易的文件如何处理resourceId
?
谢谢你的指教。
到目前为止,没有人回答,我尝试从最新经验中做到这一点。
有用的文档资料:
example2(.ppt)
简化的算法看起来像(实际上是在example2中描述的):
1. 初始化FileResourceManager
2. 启动FileResourceManager
3. 从FileResourceManager实例获取事务ID
4. 从步骤3开始具有事务ID的事务
5. 编写所需的资源-此处提到将其写入 交易
,所以看起来这是主要步骤!
6. 提交或回滚事务
注: RESOURCEID ,约我,我的问题问,仅仅是 命名 的 事务性文件 。此命名不能很好地描述此属性。
代码,我用过:
private static final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(FileAppender.class);
private static LoggerFacade loggerFacade = new Log4jLogger(logger);
private static String tempDir = (String) System.getProperties().get("java.io.tmpdir");
private FileResourceManager frm = new FileResourceManager(tempDir, tempDir, false, loggerFacade);
private static OutputStream outputStream;
public void writeOut(E event) throws IOException {
Object txId = null;
try {
frm.start();
txId = frm.generatedUniqueTxId();
frm.startTransaction(txId);
outputStream = frm.writeResource(txId, fileName, true);
frm.commitTransaction(txId);
}
catch (Exception e) {
throw new IOException("DB rollback");
}
}
我试图在操作中读取Excel文件,或向其中添加新数据并将其写回。我还试图用通量和Mono来完成一个完整的反应过程。其思想是通过webservice返回结果文件或bytearray。 我的问题是如何以非阻塞方式获取InputStream和OutputStream? 我正在使用Apache Poi库读取并生成Excel文件。 我目前有一个基于混合Mono.fromCallable()和阻塞代码获取输入
问题内容: 我有一堆不是UTF-8编码的文件,我正在将网站转换为UTF-8编码。 我对要保存在utf-8中的文件使用了简单的脚本,但是文件以旧编码保存: 如何以utf-8编码保存文件? 问题答案: file_get_contents / file_put_contents不会神奇地转换编码。 您必须显式转换字符串。例如使用或。 尝试这个: 或者,使用PHP的流过滤器:
问题内容: 我如何将分数写入文件? 问题答案: 您可以手动打开和关闭文件,但最好使用它,因为它可以为您处理关闭文件。 表示追加到文件中,该文件不会覆盖以前的内容- 这可能是您想要的。据我所知,您将要在print语句之后或之前添加它。如果您不懂读写文件,则应查看此链接。
问题内容: 我正在Ruby中创建哈希,并希望以正确的格式将其写入JSON文件。 这是我的代码: 这是结果文件的内容: 我正在使用Sinatra(不知道哪个版本)和Ruby v 1.8.7。 如何以正确的JSON格式将其写入文件? 问题答案: 需要JSON库,并使用。 您的temp.json文件现在看起来像:
问题内容: 我想知道如何将以下代码转换为将这些行输出到文本文件,而不是标准输出: 该属性文件是: 谢谢。 问题答案: 将ConsoleAppender更改为FileAppender。 我发现 有用。如果使用此选项,则必须为fileName添加一个属性,并且可能还要设置maxFileSize。这是一个示例(将它们放在log4j.properties文件中): 还有其他附加程序。 根据时间滚动。 不滚
考虑以下代码: 我唯一发现的是: dump(Object data)方法接受Java对象并生成YAML文档 和 是只有我一个人,还是文档感觉非常神秘和指定?其中一半是关于我甚至从未听说过的特殊应用。我只看着它就觉得自己很傻,这让我有点生气。 不管怎样;如果你能给我任何帮助,我将不胜感激。