Sybase打开SQL Advantage 12.5.1报错:Internal failure while initializing

1 打开SQL Advantage报错:Internal failure while initializing SQL Advantage
前几天在用sybase win客户端(OC 12.5.1)的时候,遇到了一个问题。每次打开SQL Advantage 12.5.1后,如果强制关闭窗口(例如有时界面卡死强退),那么再次打开就会报错:

1.Internal failure while initializing SQL Advantage. 2.Please check that Open Client is configured correctly. 正如下图所示,奇怪的是如果这时候重启电脑的话,那么打开SQL Advantage就正常。
 

2 查看报错信息:sybinit.err文件
正如下图所示,每次初始化SQL Advantage失败后,都会在这个文件中显示:

The context allocation routine failed when it tried to load localization files!!
One or more following problems may caused the failure

。按照文件中的提示,检查了SYBASE的环境变量值确实是D:\sybase,同时在D:\sybase\locales\locales.dat文件中LANG的值也为zh_CN。
 

3 猜想:OC客户端产生系统临时文件
在GG和BD无果后,寻思为什么SQL Advantage在电脑重启后又能够正常工作?当时“最可能”的猜想就是:在强制关闭前,OC端会产生一些临时文件,保存一些配置信息,电脑关闭后会自动清除这些文件。于是做了一个测试,在报错之后,立马使用CCleaner清理系统文件。然后再次打开SQL Advantage,结果还是报错。猜想失败!!!

4 系统环境变量:windows中“/”和“\”
折腾了几次,还是没找到方法。大致看了下GG的搜索结果,提到了PATH环境变量。于是查看了下自己的。结果发现关于SYBASE需要的几个配置全部都有而且也都对。认真比较了几次,还是没发现异常。突然发现在PATH配置内容的末尾竟然出现了不和谐因素:“/”。如图所示,这是之前在安装jdk时,配置的环境变量。平常没注意在windows中设置目录要使用“\”,而不是“/”,不然会导致出现找不到路径的错误。于是把PATH变量中的两个“/”改成“\”,然后打开SQL Advantage,竟然正常了!
 

5 延伸:其它不当配置也会报同样的错误
在搞定后,特地上GG搜索了下。其中,sybase官方论坛上的两个提问比较有代表性

1 打开SQL Advantage报错:Internal failure while initializing SQL Advantage
在sybase官方论坛上找到了两个比较有代表性的提问。二者共同的特点就是之前安装的都是SQL Advantage 11.5.1.3的版本,然后想使用12.5.1的版本(博主只装了12.5.1)。在安装好这两个客户端后,打开SQL Advantage就会报错。根据这两个提问并结合自己的理解,列出解决该问题的参考方法:

2.1 提问1:SQL Advantage 12.5.1 and OC 12
提问原地址:点击查看。大致的意思就是:之前安装了Open Client 12和SQL Advantage 11.5.1.3 ,由于想要使用最新的SQL Advantage 12.5.1,于是从另外一台电脑上直接拷贝过来。但是由于之前11.5.1.3设置的环境变量导致当尝试运行SQL Advantage 12.5.1的时候,都会报错并在sqladv-12_5的文件夹下面产生一个sybinit.err文件。文件内容和vfhky之前博主遇到的不同:

1.The context allocation routine failed. 2.The following problem caused the failure: 3.Invalid context version. 根据建议:建立一个.bat批处理文件(博主的示例)

1.set SYBASE=D:\Sybase2.set SYBASE_OCS=OCS-12_53.D:\Sybase\sqladv-12_5\sqladv.exe这样设置好OC客户端的环境变量后,发现拷贝过来的sybase客户端还需要添加charsets、ini、locales文件夹。于是添加这些文件夹,最后测试成功。

2.2 提问2:Sybase Central 4.3 and SQL Advantage 12.5
提问原地址:点击查看。大致的意思就是:之前安装过版本11.5.1.3和12.5.4的SQL Advantage ,每次“Open SQL Advantage”的时候,都会报错“Internal failure while initializing SQL Advantage. Please check that Open Client is configured correctly.”。其根本因是由于之前11.5.1.3的版本中的一些DLLS文件最终未删除还在%windows%\system32目录下,而这个目录在系统环境变量PATH中处于优先地位,因此在搜索支持sqladv.exe的Open Client的函数库文件DLLS时,会优先搜索11.5.1.3的DLLS而不是12.5.4的DLLS文件。

根据建议:通过调整在dos窗口中输入set命令查看%SYBASE%和%SYBASE_OCS%的选项是否正确,若否则建立一个batch批处理文件(范例见2.1小节),设置好12.5.4的环境变量%SYBASE%和%SYBASE_OCS%的值。博主后来用set命令查看了自己电脑的系统环境变量和用户环境变量。结果如下图所示。

3 该问题的经验总结

关于“Sybase win客户端打开SQL Advantage 12.5.1报错:Internal failure while initializing SQL Advantag”的问题,主要是环境变量的问题引起的。博主的情况是只安装了SQL Advantage12.5.1的版本,而论坛上两位提问者同时安装了11.5和12.5的版本。博主是把系统环境变量PATH中的一个变量写错了(“\”错写成了“/”),而论坛上的是之前11.5版本的SQLAdvantage的环境变量设置优先于版本12.5或者没有正确设置。因此,解决这个问题的关键在于两个地方:

1.set命令查看系统中SYBASE的环境变量是否设置正确(若否,使用bat批处理文件或者直接使用set命令设置);2.检查系统环境变量PATH中关于%SYBASE%、%SYBASE_OCS%等是否设置为对应的SYBASE安装路径。

时间: 2024-11-29 19:43:50

Sybase打开SQL Advantage 12.5.1报错:Internal failure while initializing的相关文章

sqlserver-mc sql server select 的时候报错,别的操作都可以

问题描述 mc sql server select 的时候报错,别的操作都可以 An error occurred while executing batch. Error message is: Could not load file or assembly 'Microsoft.SqlServer.Types, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependenc

android-新手求助:安卓sql查找的函数,报错Nullpointerexception

问题描述 新手求助:安卓sql查找的函数,报错Nullpointerexception 代码如下 public User search(String username){ SQLiteDatabase sdb = helper.getReadableDatabase(); Cursor cursor =sdb.rawQuery("select * from user where username=?", new String[]{username}); if(cursor.moveTo

pl/sql developer-PL/SQL Developer 远程连接Oracle 报错无法解析指定的标识符

问题描述 PL/SQL Developer 远程连接Oracle 报错无法解析指定的标识符 环境: 虚拟机中安装CentOS 6.3 CentOS安装Oracle 11gr2 客户机Win7 问题介绍: 已经在CentOS 启动了实例,监听: 开放了1521端口:虚拟机跟客户机网络连通: 使用DBVisualizer可以连接成功目标实例: PL/SQL Dev连接就报错"ORA-12154: TNS:could not resolve the connect identifier specifi

SQL嵌套查询语句的报错问题

问题描述 SQL嵌套查询语句的报错问题 5C String sql = ""select * from msgInfo where ID in(select top 15 ID from msgInfo where chatRoom=? Order by chatTime DESC) order by chatTime""; String userName=session.getAttribute(""_USER"").toS

sql server 2008 r2 安装报错

问题描述 sql server 2008 r2 安装报错 请问解决方法 解决方案 重新下载一个sqlserver安装文件 解决方案二: 是不是你的安装文件有问题?从新下载个事实看,另外确定好位数 解决方案三: 找不到指定文件,建议换个安装盘

java-openmeetings无法进入登录页面 页面报错Internal error 求高手解答

问题描述 openmeetings无法进入登录页面 页面报错Internal error 求高手解答 用的是apache-openmeetings-3.0.7 连接的是oracle 安装完成后访问一切正常,但是关掉red5 再次启动后 页面无法进入 页面报错:Internal error 后台报错信息为: ERROR 12-30 14:22:42.142 DefaultExceptionMapper.java 255077 170 org.apache.wicke t.DefaultExcept

SQL 2000自定义函数调用GETDATE()报错

在SQL 2000数据库里的自定义函数中调用GETDATE()时,结果编译时报错,提示错误如下:Invalid use of 'getdate' within a function 我给个测试例子如下所示,   --================================================================================================ -- Author : Kerry -- CreateDate : 2011-03-23

win7旗舰版系统打开组策略编辑器窗口出现报错怎么办?

  当咱们的win7 64位旗舰版下载电脑在遭遇一些系统故障的时候,咱们就需要在win7旗舰版系统中重新进行设置,重新进行调试,这样,咱们就可以将这错误的信息修改回来,保证win7旗舰版系统的正常运行了.而在这个重新设置的操作中,咱们经常都需要使用到的就是win7旗舰版系统中的组策略编辑器窗口了,打开组策略编辑器窗口中的方法很简单,咱们只需要打开win7旗舰版系统的运行窗口,然后在其中输入gpedit.msc并单击回车就可以了.         但是最近,却有使用win7旗舰版系统的用户表示,自

SQL Server2008安装中一些报错问题总结

SQL Server2008安装报错: system.diagnostics处理程序时出错是sql2008中安装时常碰到的问题,下面我来介绍解决办法. 在安装Sql Server 2008 R2的时候突然报错了,提示信息: 创建 system.diagnostics 的配置节处理程序时出错: 未能加载文件或程序集"System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"或它的某一个依赖项.系统找