08. oktober 2003 - 11:57Der er
47 kommentarer og 1 løsning
Datasource til Paradoxs/InterBase
min datascource ser således ud det er en jeg selv har bikses sammen:
<datasources> <local-tx-datasource> <jndi-name>Kundedb</jndi-name> <!-- format of URL is "jdbc:odbc:kunder" --> <connection-url>jdbc:odbc:kunder</connection-url> <driver-class>sun.jdbc.odbc.JdbcOdbcDriver</driver-class> <user-name>gr9</user-name> <password>gr9</password> </local-tx-datasource>
</datasources>
Følgene fejl i JBoss:
Depends On Me: org.jboss.deployment.DeploymentException: Error while fixing tab le name; - nested throwable: (org.jboss.util.NestedSQLException: Could not creat e connection; - nested throwable: (java.sql.SQLException: [Microsoft][ODBC Drive r Manager] Data source name not found and no default driver specified); - nested throwable: (org.jboss.resource.JBossResourceException: Could not create connect ion; - nested throwable: (java.sql.SQLException: [Microsoft][ODBC Driver Manager ] Data source name not found and no default driver specified)))] 11:31:02,849 INFO [MainDeployer] Undeploying file:/C:/j2eesdk1.4_beta2/jboss-3. 2.1/server/default/deploy/Diplas_Kunde.jar 11:31:02,849 INFO [EjbModule] Stopping
jeg har selvfølgelig installeret DBE, og sat min ODBC ref. det hele virker også hvis jeg connecter med en applikation lokalt altså direkte kald fra java?
hmm navnene er jeg sikker på passer det var også min første tanke. men det vil sige, at den driver der følger med datacenter som jeg, forhåbenlig, bruger lige nu ikke virker(jeg kan selvfølgelig ikke huske hvor jeg fandt det eks. jeg har arbejdet ud fra lige nu, prøver lige finde et link imorgen). men jeg giver da lige den der JDBC-ODBC driver en chance
Nu skriver du både firebird og interbase er det den samme database eller er de bare begge udviklet af Borland, min paradoxs er en ver. 5.0 så vidt jeg kan se giver det nogle problemmer med JDBC driveren?
hmm jeg sidder overvejer at lave denne ene bønne om til BMP istedet for CMP, for på den måde at komme uden om Datascource problemmet, da jeg så kan styre datascourcen fra bønnen, spørgsmålet er bare om det vil være nemmer, det skal lige siges at den tabel denne bønne representere er read only, jeg skal kun hente Pk og en String op. Så har jeg læst lidt rundt om at paradoc er delphi og ikke Interbase ? eller misforstår jeg, hvis det er delphi så køre jeg jo også med en forkert jdbc/odbc driver?
# tegnet er fordi jeg har copy'et stien fra winace det fortæller mig at resten af stien er den pakkede del det er også den der benytter \ istedet for /. Om driveren ligger forkert skal jeg lige teste imorgen.. jeg ønsker ikke at alle mine bønner skal have BMP men kun denne ene og ja jeg ved det er en tand ned af stigen i performance.
Hvis interbase driveren ikke virker til paradoc(ver. 5.0) hvor finder jeg så en der gør?? du skrev tidliger at der var en, men at den ikke var tilgængelig på nette er det et købe produkt only eller eksister den bare ikke mere??
det bliver ikke nødvendigt at opdatere andet end når der sker noget i DB'en da firmaet ikke får tit nye kunder men det hænder, problemmet er når der kommer nye poster i tabelen skal vi bruge dem med det samme så at vente f.eks. ½ time på de kommer ind i vores system er ikke så heldig, kan man måske lave noget der holder øje med tilføjelser det skal lige siges at vi ingen rettigheder har i det program der oprindeligt styre paradoc's DB'en
Hvis den paradox database indeholder et time stamp så kan man jo lave en SELECT MAX(tidsfelt) på den anden database og en SELECET WHERE tidsfelt > mod paradox.
Det brug burde JDBC ODBC bridge sagtens kunne klare.
ok det er din løsning 1# jeg havde tænkt mig at teste imorgen men 2# lyder mere spændende.
du mener at jeg laver en funktion der kontrollere om der er sket noget nyt på timestamps, desvære indeholder den tabel jeg skal bruge ingen timestamps, men måske PK kan bruges efter som den er fortløbene stigene(1,2,3,4, ect.), men skal funktionen ligge i sessionbean'en eller skal den ligge helt for sig selv(en selvstændig applikation)?
lol, jo det ville have været smart/rart, desvære blev j2ee ikke valgt ud fra databaserne, men fordi vi skulle bruge noget der kunne give os en god akitektur samt let angang til data over netværk, altså et distubuerede system. J2ee blev valgt ud fra at vi have erfaring med det fra før, dog på Sun's app server, som til tider godt kan være lidt tung. Før hen brugte vi så også kun en type DB, nu er det en ny type eller retter typer. Vi fik så også afvide man kunne sagtens skaffe adgang til databaserne hvis man kunne få det gennem en lokal applikation med driveren, dette har ikke vidst sig at være et problem(vi nåede dog kun teste MS SQL) derfor antog vi det ikke ville blive så stort et problem, men du har ganske ret mere erfaring med enkelte ting, før vi havde kastet os ud i dette projekt ville have været meget ønskværdigt. den ene DB(paradoc) er heller ikke en vi har valgt at køre med, den er blot en del af det firma's øko system, som vi udvikler dette system til, og de ønsker så at vi har de samme data som de allerede har derfor forbindelsen til den, hvilket også først kom midt/slutning system udviklings delen hvor man jo normalt har den slags i baghovedt.
jotak det ville da ikke være af vejen med lidt hjælp til det, har du eventuelt et par gode links, jeg ser ikke så meget i min dokumentation fra JBoss, om Schedulering desvære.
public class HelloWorld implements Schedulable { public HelloWorld() { super(); } public void perform(Date timeOfCall, long remainingRepetitions) { System.out.println("Hello world"); } }
ok så i metoden perform() laver jeg et database lookup og kontrolere hvor vidt den stemmer over ens med den i MS sql f.eks. og hvis den ikke gør så opdatere?
Skal forbindelsen til DB'erne håndteres i klassen eller skal jeg bruge JBoss's forbindelse?
jeg får den her fejl med min interbase driver: 11:04:01,116 WARN [ServiceController] Problem starting service jboss.j2ee:jndiName=Kunde,service=EJB java.lang.VerifyError: (class: interbase/interclient/ErrorKey, method: _$372 signature: (Ljava/lang/String;Ljava/lang/String;I)V) Expecting to find unitialized object on stack
Så det betyder vel den ikke går, jeg leder lige lidt efter en ny...
Er det muligt med schedulering at man kan "trigger" den med en metode i f.eks. en session bean, altså at opdatering af data foregår lige før programmet for brug for data'en??
Jeg har søgt rundt om på forums og des lig. alle steder hvor folk kommer med paradoc problmmer vender man tilbage til at bruge enten sun's JDBC eller at forsøge med den paradoc's driver du har hentydet til tidliger(pdxJDBC.jar), det fra rådes dog på paradoc's versioner under 5.0 Så min ligger lige på grænsen.
jeg tror det er fordi interbasen ikke genkender paradoc's DB'en
Nå løsningen på mit problem, blev at DB-folkene fandt ud af MS SQL server selv kunne replikere data(i en scheduled task) fra en paradoc's database over i en table, så kunne jeg jo hente det derfra.
men det løser jo sådan set ikke problemmet med en paradocs driver ud over at vi kan konstatere at der er en og at den muligvis ikke virker på paradoc under ver. 5.0 , så jeg ved ikke om det kan godtages som et svar.....
jeg vil så nu alligevel godt give Arne_V halvedelen af point for at lede mig ind på schedulering hvilket førte til en løsning JEG kunne bruge eller er det imod reglerne??
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.