Avatar billede dat01x02 Nybegynder
11. januar 2003 - 23:17 Der er 16 kommentarer og
1 løsning

Kan ikke finde min tabel i databasen (J2EE Cloudscape)

Jeg har lavet en Entity Bean(CMP) og deployet den med deploytoolet. Så har
jeg en jsp side til at tilgå min bean. Al dettte virker fint efter
deployment, kan søge i tabellen o.s.v. men hvis jeg lukker cloudscape og
server ned og starter dem op igen, så er tabellen væk.
Jeg bliver nød til at deploye igen for at kunne tilgå tabellen, men så er
det en ny tabel uden indhold.
Hvorfor forsvinder min tabel?
Avatar billede arne_v Ekspert
12. januar 2003 - 11:17 #1
Nogle spørgsmål:

1)  Det er hele tabellen som er væk - ikke kun data ?

2)  Opretter du tabellen først eller bliver din entity
    bean deployet med create option ?

3)  Lukker du pænt ned ?

4)  Får du nogle fejl ?
Avatar billede dat01x02 Nybegynder
12. januar 2003 - 15:56 #2
>1)  Det er hele tabellen som er væk - ikke kun data ?
Ja det er hele tabellen som er væk.

>2)  Opretter du tabellen først eller bliver din entity
>    bean deployet med create option ?
Den er deployet med "Create table on deploy"

>3)  Lukker du pænt ned ?
j2ee -stop og cloudscape -stop

>4)  Får du nogle fejl ?
Kun når jeg igen førsøger af bruge jsp.siden: en Nullpointerexception.

/ Michael
Avatar billede arne_v Ekspert
12. januar 2003 - 16:07 #3
Jeg må indrømme, at jeg er lidt på bar bund.

Der er ikke noget åbenlyst (og J2EE Reference Implementation
har aldrig været noget, som jeg har brugt meget tid på.

Skud fra hoften:

Prøv og lav tabellen først inden du deployer
(cloudscape -isql og CREATE TABLE). Og så deploy
applikationen uden create.
Avatar billede dat01x02 Nybegynder
12. januar 2003 - 16:22 #4
Har prøvet, er heller ikke løsningen.
Når jeg vil tilgå databasen manuelt får jeg denne meddelse:

C:\Documents and Settings\Mike>cloudscape -isql
ij version 4.0 (c) 1997-2001 Informix Software, Inc.
WARNING 01J01: Database 'CloudscapeDB' not created, connection made to existing
database instead.
CONNECTION0* -  jdbc:cloudscape:CloudscapeDB;create=true
* = current connection
/ Michael
Avatar billede arne_v Ekspert
12. januar 2003 - 16:35 #5
Og ?

Det gør jeg også, men jeg kan godt lave tabeller alligevel !
Avatar billede dat01x02 Nybegynder
12. januar 2003 - 16:41 #6
Ja det kan jeg også:

C:\Documents and Settings\Mike>cloudscape -isql
ij> select * from kontobeantable;
KONTOID            |SALDO
------------------------------------
1                  |45
2                  |30
3                  |775

3 rows selected
ij>
Men entity beanen tilgår ikke denne database, det virker lidt som om den har en tabel et andet sted og sletter den når serveren lukkes ned.
Beanen bruger metoden findByPrimaryKey() og kan kun finde de rækker jeg har sat ind via jsp siden.
Men det er ikke så fedt at jeg er nådt til at deploye hvergang jeg har lukket serveren ned.
/ Michael
Avatar billede arne_v Ekspert
12. januar 2003 - 16:54 #7
Naturligvis skal du da kunne beholde dine data.
Avatar billede arne_v Ekspert
12. januar 2003 - 16:55 #8
Jeg fandt følgende hos SUN:

Generating SQL and Specifying Table Creation

In deploytool, the various Deployment Settings dialog boxes enable you to enter information needed by the server at runtime. These settings are specific to the J2EE SDK implementation.

    # To open the Deployment Settings dialog box, go to the Entity tab and click Deployment Settings.
    # With container-managed persistence, the container can automatically create or delete the database table used by the entity bean. If you've loaded test data into the table, you may want to deselect the checkboxes in the Database Table box.
    # To translate the EJB QL queries into SQL SELECT statements, click Generate Default SQL. If this button is disabled, you must first specify the database settings.

Er der et kryds i "slet tabel ved exit" ?

Link:
  http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/CMP7.html#72726
Avatar billede dat01x02 Nybegynder
12. januar 2003 - 17:01 #9
ikke i "slet tabel ved exit" men i "delete table on undeploy", men det er jo kun hvis jeg deployer på ny, og ikke hvis jeg bare lukker/starter server igen.
/Michael
Avatar billede arne_v Ekspert
12. januar 2003 - 17:05 #10
Har du prøvet at fjerne krydset i "delete table on undeploy" ?
Avatar billede arne_v Ekspert
12. januar 2003 - 17:47 #11
Noget helt andet.

Du er klar over at API'et i J2EE kit er
sandheden hugget i sten, men reference implementation
serveren som kommer med det er kun et stykke legetøj ?

Hvis du skal bruge noget bare halv-seriøst, så skal du ud og finde
en anden server (JBoss kan anbefales hvis du vil have noget gratis !).
Avatar billede dat01x02 Nybegynder
12. januar 2003 - 17:56 #12
Har også prøvet ikke at slette tabelen ved deployment. hjælper stadig ikke, der er som om at serveren mister referencen til beanen efter restart. Har lavet en SessionBean, virker perfekt, men den har jo ikke persistent data.
Må prøve at installere JBoss, hvilken database anvender man så?
/ Michael
Avatar billede arne_v Ekspert
12. januar 2003 - 17:59 #13
Den kommer med en eller anden Hypersonic Database.

Jeg har aldrig brugt den.

I.s.f. har jeg konfigureret JBoss til at bruge en anden
database.

Hvis du har en database (MS Access, MS SQLServer, MySQL, Mimer etc.),
så brug den.
Avatar billede dat01x02 Nybegynder
13. januar 2003 - 15:30 #14
Har fået cloudscape databasen til at virke, nu er dataen stadig i databasen efter at serveren har været nede. Problemet var måden jeg oprettede tubler i databasen, fra min jsp side.
Dog kan jeg stadig ikke finde tabellen hvis jeg rent fysisk vil ind og se den ved f.eks. komandoen: cloudscape -isql....... select * from KONTOBEANTABLE;

Men et eller andet sted er den i hvertfald.
Tak for hjælpen..
/ Michael
Avatar billede arne_v Ekspert
14. januar 2003 - 21:21 #15
Af almindelig nysgerrighed: hvad præcis gjorde du forkert ved
oprettelsen af tuppler ?

Hvis du vil have spørgsmålet lukket, så kan du bare selv ligge et svar og
acceptere det.
Avatar billede dat01x02 Nybegynder
15. januar 2003 - 10:30 #16
Problemet var at, når jeg initialicerede jsp siden, så oprettede(satte noget in i tabellen) jeg sammentidig nye kontoer. Med det resultat at når serveren havde været lukket ned og blev startet igen og ville loade jsp siden, så forsøgte den jo at indsætte noget i min tabel, hvor der iforvegen stod noget data. Havde jeg brugt fortløbende numre som primærnøgle, havde jeg ikke fået problemet.
/ Michael
Avatar billede dat01x02 Nybegynder
26. januar 2003 - 21:03 #17
/Michael
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester