SchemaSpy DB2连接失败

SchemaSpy DB2连接失败,db2,schemaspy,Db2,Schemaspy,我试图用SchemaSpy分析DB2数据库,但得到了一个警告“连接失败”。我试着这样做: java -jar schemaspy-6.0.0.jar -configFile schemaspy.properties --logging.pattern.console="%d{HH:mm:ss.SSS} %clr(%-5level) - %msg%n" --logging.level.org.schemaspy=TRACE (在上找到日志记录部件) .properties文件如下所示: sche

我试图用SchemaSpy分析DB2数据库,但得到了一个警告“连接失败”。我试着这样做:

java -jar schemaspy-6.0.0.jar -configFile schemaspy.properties --logging.pattern.console="%d{HH:mm:ss.SSS} %clr(%-5level) - %msg%n" --logging.level.org.schemaspy=TRACE
(在上找到日志记录部件)

.properties文件如下所示:

schemaspy.t=db2
schemaspy.dp=C:\tmp\db2jcc.jar
schemaspy.host=**host**
schemaspy.port=50000
schemaspy.db=**db**
schemaspy.u=**user**
schemaspy.p=**password**
schemaspy.o=D:\**\schemaspy-output\
schemaspy.s=**schema**
我得到的错误是:

    14:24:20.297 DEBUG - Unable to find driverClass COM.ibm.db2.jdbc.app.DB2Driver'
    14:24:20.308 WARN  - Connection Failure
    org.schemaspy.model.ConnectionFailure: Failed to connect to database URL [jdbc:db2:zumtest] Failed to create any of 'COM.ibm.db2.jdbc.app.DB2Driver' driver from driverPath 'C:\tmp\db2jcc.jar' with sibling jars no.
    Resulting in classpath:
            file:/C:/tmp/db2jcc.jar

            at org.schemaspy.DbDriverLoader.getConnection(DbDriverLoader.java:101)
            at org.schemaspy.DbDriverLoader.getConnection(DbDriverLoader.java:75)
            at org.schemaspy.service.SqlService.connect(SqlService.java:68)
            at org.schemaspy.SchemaAnalyzer.analyze(SchemaAnalyzer.java:186)
            at org.schemaspy.SchemaAnalyzer.analyze(SchemaAnalyzer.java:107)
            at org.schemaspy.cli.SchemaSpyRunner.runAnalyzer(SchemaSpyRunner.java:97)
            at org.schemaspy.cli.SchemaSpyRunner.run(SchemaSpyRunner.java:86)
            at org.schemaspy.Main.main(Main.java:48)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
            at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
    Caused by: org.schemaspy.model.ConnectionFailure: Failed to create any of 'COM.ibm.db2.jdbc.app.DB2Driver' driver from driverPath 'C:\tmp\db2jcc.jar' with sibling jars no.
    Resulting in classpath:
            file:/C:/tmp/db2jcc.jar

            at org.schemaspy.DbDriverLoader.getDriver(DbDriverLoader.java:147)
            at org.schemaspy.DbDriverLoader.getConnection(DbDriverLoader.java:93)
            ... 15 common frames omitted
我猜,错误来自错误的类路径?但是我怎么才能解决这个问题呢?我试图更改db2.properties中的行

driver=COM.ibm.db2.jdbc.app.DB2Driver


,因为我从驱动程序的.jar flie中提取了这个类路径,但它没有帮助。

这对我使用db2jcc.jar是有效的

# type of database. Run with -dbhelp for details
schemaspy.t=db2
# optional path to alternative jdbc drivers.
schemaspy.dp=/lib/db2jcc.jar
# database properties: host, port number, name user, password
schemaspy.host=xxxxxx
schemaspy.port=xxxxx
schemaspy.db=xxx
schemaspy.u=xx
schemaspy.p=xx
# output dir to save generated files
schemaspy.o=/output
# db scheme for which generate diagrams
schemaspy.s=xxxx
driver=com.ibm.db2.jcc.DB2Driver
connectionSpec=jdbc:db2://xxx.xx.x.xxx:[PORT]/[DBNAME]
schemaspy.cat=%
使用的命令:

java -jar schemaspy-6.1.0.jar -configFile db2.properties  --logging.pattern.console="%d{HH:mm:ss.SSS} %clr(%-5level) - %msg%n" --logging.level.org.schemaspy=TRACE

JCC驱动程序的正确类名是
com.ibm.db2.JCC.DB2Driver
——类名区分大小写。根据应用程序尝试使用的url格式(jdbc:db2:database),它尝试使用旧的类型2驱动程序com.ibm.db2.jdbc.app.DB2Driver,它位于db2java.zip中,而不是db2jcc*.jar中。如果希望使用类型4驱动程序和url格式作为jdbc:db2://host:port/database,您必须使用db2jcc*.jar和com.ibm.db2.jcc.DB2Driver驱动程序。我成功地使用了这个驱动程序:我将schemaspy.properties文件修改为
schemaspy.dp=C:\Program Files\ibm\SQLLIB\java\db2java.zip
,将db2.properties文件修改为
driver=com.ibm.db2.jdbbc.app.DB2Driver
driverPath=C:\ProgramFiles\IBM\SQLLIB\java\db2java.zip
schemaSpy调用的命令行必须更改为
java-jar schemaSpy-6.0.0.jar-configFile schemaSpy.properties-cat%
非常感谢您的帮助。J
java -jar schemaspy-6.1.0.jar -configFile db2.properties  --logging.pattern.console="%d{HH:mm:ss.SSS} %clr(%-5level) - %msg%n" --logging.level.org.schemaspy=TRACE