保存错误记录的输入消息

时间:2014-04-18 19:19:17

标签: java spring global-variables wrapper

我有一个场景我想得到你的意见。我们几乎已经确定了我们要采取的路线,但我很好奇关于解决方案的其他一些意见。

我们的程序是一个位于两个较大系统之间的转换器服务:系统A制作副本并将其粘贴到WebSphere队列上,JMS通过调用Converter类中的onMessage方法来获取它并启动我们的服务,我们做了一些处理,将其返回给JMS,JMS将其粘贴到另一个队列B到系统B.

我们正在寻找捕获输入消息的最佳方法,一旦它到达我们的onMessage方法并在整个程序的整个过程中保留它。这样,如果我们遇到错误,我们可以在堆栈跟踪日志中打印导致错误的消息,以帮助进行故障排除。

在我的研究中,我遇到了四种获得持久性的方法:

1)保存到临时文件。

2)全局变量/ Singleton。

3)包装类。

4)Spring的依赖注入方法。

我们倾向于使用全局变量(不祥的音乐)。我们使用以下已知事实来推动我们的决定:

  • 它只是一个字符串,最多包含1000个字符,因此内存影响可以忽略不计。
  • 只有一个类可以访问setter(它内部的Consumer类)
  • 每个其他实例只会访问getter。
  • 最清晰/最简单的代码,方便有人理解。
  • 我们的服务永远不会变成多线程。
  • 我们的服务中只有一个实例将在给定服务器上同时运行。
  • 每次收到新消息时,该变量都将被清除并覆盖。

我知道一般意见认为全局变量非常糟糕,但我一直认为全局变量本质上并不坏,它们只是以一种糟糕的方式易于使用。我们认为这是一个例子,在考虑全局变量的危险性的情况下,它们是正确的选择。你的想法?

应该注意的是,我们无法在我们的环境中添加任何库,因此我们无法使用Java和Spring做任何事情。

0 个答案:

没有答案