目录

  • 1. 事情起因
  • 2. 错误描述
  • 3. 问题解决
  • 4. 后记
  • 5. 填坑更新221008


1. 事情起因

  • 这几天开始对一个旧项目进行升级,使用的达梦数据库(DM7)。电脑上之前装了达梦数据库管理工具,但是很久没用了。
  • 话说,这天,在服务器上新建了数据库实例,然后在电脑上打开DM管理工具,选择注册连接,填完信息,点击测试按钮,测试成功,完美,点击确定按钮保存收工。。。
  • 居然保存失败了,然后各种尝试,重启,都无效。删除已有连接也失败。
  • 无奈,只能选择终级方案,重装软件。
  • 先卸载,再安装,打开,报错,好吧,这次连工具都运行不了了;循环几遍,卸载,重启系统,安装,运行,报错……
  • 经过多次重装尝试无果后,只好试着解决一下吧,工具得用啊。

2. 错误描述

  • 概述:达梦数据库安装后,工具无法正常运行;
  • 安装的几个工具,打开都是一样的错误:
  • 安装达梦提示找不到JAVAX 达梦数据库 2007错误_database

  • 根据提示,打开日志文件,错误显示如下:
java.lang.IllegalStateException: The platform metadata area could not be written: D:\Program Files\dmdbms\tool\workspace\manager\.metadata. By default the platform writes its content 
under the current working directory when the platform is launched.  Use the -data parameter to 
specify a different content area for the platform.
		at org.eclipse.core.internal.runtime.DataArea.assertLocationInitialized(DataArea.java:61)
		at org.eclipse.core.internal.runtime.DataArea.getStateLocation(DataArea.java:125)
		at org.eclipse.core.internal.preferences.InstancePreferences.getBaseLocation(InstancePreferences.java:44)
		at org.eclipse.core.internal.preferences.InstancePreferences.initializeChildren(InstancePreferences.java:199)
		at org.eclipse.core.internal.preferences.InstancePreferences.<init>(InstancePreferences.java:59)
		at org.eclipse.core.internal.preferences.InstancePreferences.internalCreate(InstancePreferences.java:209)
		at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:289)
		at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:277)
		at org.eclipse.core.internal.preferences.PreferencesService.createNode(PreferencesService.java:390)

3. 问题解决

  • 错误日志经过翻译,大概是“无法写入平台元数据区域”,应该和配置有关系;
  • 经网上查找类似有关联问题的解决方案,大概原因是我的电脑之前因某些操作把 “My Documents” 文件夹改到了D盘下,而安装程序会假设它位于C盘并且尝试在那里打开工作区;
  • 解决的思路就是给启动程序加入 “-data”属性,指定合理的工作区路径;
  • 经过尝试,确认通过修改各工具的启动程序对应的ini配置文件即可,如DM管理工具对应的“manager.exe”,需修改“manager.ini”,原文件如下:
-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.2.R36x_v20101222
-product
com.dameng.manager.product
-showSplash
manager.bmp
-data
workspace/manager
-vm
../jdk/bin
-vmargs
-DDM_HOME=../
-Djava.library.path=../bin
-Ddameng.log.file=log4j.xml
-Ddameng.isql.explorer.root=workspace/local/isql
-Ddameng.dts.explorer.root=workspace/local/dts
-Duse_bak2=true
-Dapp.name=manager.exe
-XX:MaxPermSize=256M
-Dosgi.nl=zh_CN
  • 修改后,文件如下:
-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.2.R36x_v20101222
-product
com.dameng.manager.product
-showSplash
manager.bmp
-data
D:/Users/xhp/.eclipse/workspace/manager
-vm
../jdk/bin
-vmargs
-DDM_HOME=../
-Djava.library.path=../bin
-Ddameng.log.file=log4j.xml
-Ddameng.isql.explorer.root=workspace/local/isql
-Ddameng.dts.explorer.root=workspace/local/dts
-Duse_bak2=true
-Dapp.name=manager.exe
-XX:MaxPermSize=256M
-Dosgi.nl=zh_CN
  • 修改了“-data”属性,指定为文件夹绝对路径;
  • 注意,应该是DM程序把文件夹权限重设了,文件修改完无法保存;我们绕一下,先另存到其他地方同名文件,然后用新文件覆盖旧文件即可;
  • 操作完成后,重新打开DM管理工具,成功;
  • 其他几个工具,都按此方式处理即可。

4. 后记

  • 经过折腾,把几个工具的配置文件都改了一遍,然后都可以正常运行了;
  • 悲剧的是,最开始的问题——DM管理工具无法保存新建的数据库连接,依然存在;意味着,每次打开工具都得新填写连接信息;
  • 上述无法保存的问题,仅有一个“保存失败”的提示,找不到日志,不知道从哪下手解决,网上也找不到类似问题,先搁置下来,凑合用吧,先得继续项目;
  • 到此为止了,希望有空能解决掉遗留问题(希望不大),回头把这坑填了。

5. 填坑更新221008

  • 上述遗留问题——在管理工具里保存注册连接失败的错误,在昨天重新安装DM8时候,灵光一现,解决了;
  • 解决方式:安装的时候,选择的安装路径不要包含空格;
  • 在两台电脑上经过测试,这样安装完都是没问题的;反之。只要安装路径里有空格,就会出现运行错误,在修改配置文件后运行正常,但会出现保存失败的错误。