QAnywhere C++ API、Java API 和 .NET API 包括一些用来处理异常的特殊对象和属性。
QAException 类可封装 QAnywhere 客户端应用程序异常。在捕获一个 QAnywhere 异常后,可使用 QAException ErrorCode 和 Message 属性来确定错误代码和错误消息。
请注意,如果在消息监听器委派内抛出一个 QAException,并且该 QAException 未在消息监听器中被捕获,则会将其记录到 QAManager 日志文件中。因为仅记录未捕获的 QAException,因此建议在消息监听器委派内处理所有异常,或由异常监听器委派处理所有异常,以便能够对这些异常进行适当的处理。
有关消息监听器委派和异常监听器委派的详细信息,请参见:
有关日志文件的详细信息,请参见QAnywhere Manager 配置属性。
抛出一个 QAException 时,当前事务将被回退。当具有 QATransactionalManager 的消息监听器中发生这种情况时,抛出 QAException 时正在处理的消息会被放回接收队列,以使该消息可被重新接收。可使用消息存储库属性 ias_MaxDeliveryAttempts 来防止发生无限循环。
当属性 ias_MaxDeliveryAttempts 被 QAnywhere 应用程序设置为正整数 n 时,如同在 mgr.SetIntStoreProperty( "ias_MaxDeliveryAttempts", 5 )
中一样,QAnywhere 客户端将会在将此消息的状态设置为无法接收之前,最多尝试接收这条未确认的消息 n 次。如果未设置属性 ias_MaxDeliveryAttempts 或该属性为负值,则 QAnywhere 客户端尝试接收消息的次数将不受限制。
有关详细信息,请参见:
对于 C++,QAError 类可封装 QAnywhere 客户端应用程序异常。可使用 QAManagerBase::getLastError() 方法或 QAManagerFactory::getLastError() 方法,来确定与上一个执行方法相关的错误代码。可使用相应的 getLastErrorMessage() 方法来获得错误文本。
有关错误代码的列表及详细信息,请参见QAError 类。
有关 getLastError 和 getLastErrorMessage 的详细信息,请参见:
QAException 类可封装 QAnywhere 客户端应用程序异常。在捕获一个 QAnywhere 异常后,可使用 QAException ErrorCode 和 Message 属性来确定错误代码和错误消息。
如果在消息监听器内抛出一个 QAException,并且该 QAException 未在消息监听器中被捕获,则会将其记录到 QAManager 日志文件中。因为仅记录未捕获的 QAException,因此建议在消息监听器内处理所有异常,或由异常监听器处理所有异常,以便能够对这些异常进行适当的处理。
有关消息监听器和异常监听器的详细信息,请参见:
有关日志文件的详细信息,请参见QAnywhere Manager 配置属性。
抛出一个 QAException 时,当前事务将被回退。当具有 QATransactionalManager 的消息监听器中发生这种情况时,抛出 QAException 时正在处理的消息会被放回接收队列,以使该消息可被重新接收。可使用消息存储库属性 ias_MaxDeliveryAttempts 来防止发生无限循环。
当属性 ias_MaxDeliveryAttempts 被 QAnywhere 应用程序设置为正整数 n 时,如同在 mgr.SetIntStoreProperty( "ias_MaxDeliveryAttempts", 5 )
中一样,QAnywhere 客户端将会在将此消息的状态设置为无法接收之前,最多尝试接收这条未确认的消息 n 次。如果未设置属性 ias_MaxDeliveryAttempts 或该属性为负值,则 QAnywhere 客户端尝试接收消息的次数将不受限制。
有关详细信息,请参见:
下表列出 QAnywhere 错误代码值:
错误值 | 说明 |
---|---|
0 |
无错误。 |
1000 |
初始化错误。 |
1001 |
终止错误。 |
1002 |
无法访问客户端属性文件。 |
1003 |
没有目标。 |
1004 |
未实现函数。 |
1005 |
不能写入到消息,因为它处于只读模式。 |
1006 |
在客户端消息存储库中存储消息时出错。 |
1007 |
从客户端消息存储库中检索消息时出错。 |
1008 |
初始化后台线程时出错。 |
1009 |
打开消息存储库连接时出错。 |
1010 |
客户端属性文件中有一个无效的属性。 |
1011 |
打开日志文件时出错。 |
1012 |
遇到了意外的消息结尾。 |
1013 |
消息存储库相对于设备上的可用磁盘空间过大。 |
1014 |
尚未为进行消息传递而初始化消息存储库。 |
1015 |
获取队列深度时出错。 |
1016 |
在未设置消息存储库 ID 时,无法使用 QAManagerBase.getQueueDepth。 |
1017 |
当过滤器为 ALL 时,无法在给定目标上使用 QAManagerBase.getQueueDepth。 |
1018 |
取消消息时出错。 |
1019 |
取消消息时出错。不能取消已发送的消息。 |
1020 |
确认消息时出错。 |
1021 |
QAManager 没有打开。 |
1022 |
QAManager 已打开。 |
1023 |
给定选择程序存在一个语法错误。 |
1024 |
时间戳在可接受范围以外。 |
1025 |
无法打开 QAManager,因为并发服务器请求的最大数不够大。请参见-gn dbsrv12 服务器选项。 |
1026 |
从消息存储库中检索属性时出错。 |
1027 |
将属性存储到消息存储库中时出错。 |
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |