Hi Davide, My versions are U:\docs\OA\derby>java --version java 9 Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
U:\docs\OA\derby>jar --version jar 9 U:\docs\OA\derby>ant -version Apache Ant(TM) version 1.10.1 compiled on February 2 2017 My ant task to build the jar file <property name="db.name" value="docentries"/> <target name="jar" depends="getstuff"> <genjar jarfile="${target.dir}/${proj.dir}/${jar.file}"> <classpath refid="class.path" /> <!-- include main class and all its dependencies --> <class name="${main.class}" /> <resource package="docentries"> <fileset dir="U:\docs\OA\derby" includes="${db.name}/*.properties" /> <!-- <fileset dir="derby" includes="U:\docs\jprogarchives\${db.name}/*.properties" /> --> </resource> <resource package="docentries/log"> <fileset dir="U:\docs\OA\derby" includes="${db.name}/log/" /> </resource> <resource package="docentries/seg0"> <fileset dir="U:\docs\OA\derby" includes="${db.name}/seg0/" /> </resource> <!-- define the manifest --> <manifest> <attribute name="Main-Class" value="${main.class}" /> <!-- http://mindprod.com/jgloss/jar.html --> <attribute name="Class-Path" value="derby.jar" /> </manifest> </genjar> </target> I add derby.jar in the manifest of the jar I'm building since I use it from my own classes. The derby.jar and my app.jar are in the same folder. Just one more point: A Jar file made 2 years ago (2018) still works correctly. Cheers François -----Original Message----- From: Davide Grandi <davide.gra...@email.it> Sent: 11 September 2020 14:18 To: derby-user@db.apache.org Subject: Re: database in a jar : conglomerate does not exists Hello, maybe the steps you follow are decisive : - ".jar" files are only .zip files, but zip files have too many internal formats - maybe the jar generation defaults are changed from what your derby "expects" if you gives the usual details (JDK, jva -version, commands, ...) one could replicate the environment and your specific situation. Bye, Davide Grandi On 11/09/2020 09:33, RAPPAZ Francois wrote: > If I start from a new database (named docentries), I packed it in a jar, I > can connect with ij and run a select command. > > If I run the code from my java classe, I get the error > > ----- SQLException ----- > SQL State: XJ040 > Error Code: 40000 > Message: Failed to start database 'classpath:docentries', see the next > exception for details. > > ----- SQLException ----- > SQL State: XCL20 > Error Code: 20000 > Message: Catalogs at version level 'null' cannot be upgraded to version > level '10.4'. > > I connect with db = new > DBConnector("jdbc:derby:classpath:docentries"); > > François > > -----Original Message----- > From: Rick Hillegas <rick.hille...@gmail.com> > Sent: 11 September 2020 00:49 > To: Derby Discussion <derby-user@db.apache.org>; RAPPAZ Francois > <francois.rap...@unifr.ch> > Subject: Re: database in a jar : conglomerate does not exists > > Also, look inside the jar file for a directory called docentries/seg0. > Does it contain a file called c560.dat? > > On 9/10/20 8:53 AM, Rick Hillegas wrote: >> Sorry. Make that query: >> >> SELECT s.schemaName, t.tableName, c.conglomerateName >> >> FROM sys.sysConglomerates c, sys.sysSchemas s, sys.sysTables t >> >> WHERE c.conglomerateNumber = 1376 >> >> AND c.tableID = t.tableID >> >> AND t.schemaID = s.schemaID >> >> ; >> >> >> On 9/10/20 8:22 AM, Rick Hillegas wrote: >>> Hi François, >>> >>> Do you have any information or theories about how your database >>> became corrupted? I have never encountered this situation before. A >>> database in a jar file should be read-only, so the only theory I >>> have is that the jar file itself was corrupted by some process outside >>> Derby. >>> >>> Please run the following query in order to find out what table/index >>> is corrupted: >>> >>> SELECT s.schemaName, t.tableName, c.conglomerateName >>> >>> FROM sys.sysConglomerates c, sys.sysSchemas s, sys.sysTables t >>> >>> WHERE c.conglomerateNumber = 376 >>> >>> AND c.tableID = t.tableID >>> >>> AND t.schemaID = s.schemaID >>> >>> ; >>> >>> >>> Thanks, >>> -Rick >>> >>> On 9/10/20 3:09 AM, RAPPAZ Francois wrote: >>>> Hi >>>> I have a one table database embedded in a jar file. I tried to >>>> access it from ij with java -jar %DERBY_HOME%/lib/derbyrun.jar ij >>>> -p ij.properties >>>> >>>> ij.properties is >>>> derby.ui.codeset=utf8 >>>> ij.connection.doc=jdbc:derby:jar:(U:/docs/OA/articles/zlib/autconv/ >>>> a >>>> utconv.jar)docentries >>>> >>>> >>>> I can see that my table (authors) is in the the database with SHOW >>>> TABLES; I can see the columns >>>> ij> DESCRIBE authors; >>>> COLUMN_NAME >>>> |TYPE_NAME|DEC&|NUM&|COLUM&|COLUMN_DEF|CHAR_OCTE&|IS_NULL& >>>> ------------------------------------------------------------------- >>>> - >>>> ---------- >>>> >>>> NAME1 |VARCHAR |NULL|NULL|20 |NULL |40 |NO >>>> NAME2 |VARCHAR |NULL|NULL|20 |NULL |40 |NO >>>> DATA |VARCHAR |NULL|NULL|50 |NULL |100 >>>> |YES AUTHOR_ID |INTEGER |0 |10 |10 |AUTOINCRE&|NULL >>>> |NO >>>> >>>> 4 rows selected >>>> But I can't run a select statement: >>>> ij> select * from authors; >>>> ERROR XSAI2: Le conglomerat (1,376) demande n'existe pas. >>>> ij> exit; >>>> >>>> I have derby 10.8.2.2 >>>> Thanks for any help. >>>> >>>> François >>>> >>> >> -- Ing. Davide Grandi email : davide.gra...@email.it mobile : +39 339 7468 778 linkedin : http://linkedin.com/in/davidegrandi