Zum Inhalt springen

KartoffelKiffer

Mitglieder
  • Gesamte Inhalte

    37
  • Benutzer seit

  • Letzter Besuch

  1. Hallo, seit einiger Zeit versuchen wir schon, die Embedded Variante von Windows auf unsere Industrie-Rechner zu bringen. Jedoch scheitern wir an der Flut von Möglichkeiten, die es mit dem Target Designer zu bewältigen gilt. Gibt es nun im deutschen Raum eine Möglichkeit, sich diesbezüglich schulen zu lassen? Leider finde ich recht wenig hierzu im Internet, weshalb ich mich an die Kollegen wende. Anders herum gefragt: Wie haben die unter euch, die selber schon einen PC mit Windows Embedded aufgesetzt haben, sich das Know-How angeeignet? Gruß, KK
  2. Hallo, Weil ich dann immernoch nicht weiß, wie der ganze Kram vernünftig funktioniert Da kann ich mich selbst zitieren und die Frage beantworten Ich hoffe nun mit c3p0 besser zu fahren, als zuvor. Es macht augenscheinlich ( nicht ausgiebig getestet ) einen sehr sehr vernünftigen Eindruck. Bislang keine Exceptions. Und auch die Performance lässt einiges offen.... Ich bedanke mich bei euch! MFG KK
  3. Hallo, ich bin nun wiefolgt wiederfahren: private static ComboPooledDataSource ds = null; private static Connection con = null; private static boolean db_connected = false; public static void connect() { if (isConnected()) { System.out.println("is connected"); return; } else { System.out.println("is not connected"); } try { ds = new ComboPooledDataSource(); ds.setDriverClass("org.gjt.mm.mysql.Driver"); ds.setJdbcUrl(ReadConfig.Element("database_connectionstring")); ds.setUser(ReadConfig.Element("database_user")); ds.setPassword(ReadConfig.Element("database_pass")); con = ds.getConnection(); db_connected = true; } catch (Exception e) { System.out.println(e.toString()); db_connected = false; } } public static void distroyConnection() { try { DataSources.destroy(ds); db_connected = false; } catch (Exception e) { System.out.println(e.toString()); } } public static ResultSet executeQuery(String sql) { try { System.out.println("users: " + ds.getNumUserPools()); System.out.println("cons: " + ds.getNumConnections()); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { return con.createStatement().executeQuery(sql); } catch (SQLException e) { try { connect(); return con.createStatement().executeQuery(sql); } catch (Exception e2) { System.out.println(e2.toString()); return null; } } } public static boolean isConnected() { try { ds.getConnection(); db_connected = true; } catch (Exception e) { db_connected = false; } return db_connected; } Ich führe also nun bei jeder Abfrage an die Datenbank meine Funktion executeQuery auf, die jedesmal ein Statement erstellt und ein ResultSet zurück gibt. Komisch ist nur, dass "System.out.println("cons: " + ds.getNumConnections());" bei einem Client 3 zurück gibt und bei einem zweiten 6. Wobei 6 Connections auch das Maximum sind. Kommt ein dritter Client hinzu, bleibt es bei 6 aktiven Connections. Eine Connection wird nie geschlossen bei mir, da die Applikation dauerhaft in einem Tomcat läuft. Die Funktion distroyConnection wird also nie aufgerufen. Sobald ich ein Statement bloß einmal erstelle (bsp) ds = new ComboPooledDataSource(); ds.setDriverClass("org.gjt.mm.mysql.Driver"); ds.setJdbcUrl(ReadConfig.Element("database_connectionstring")); ds.setUser(ReadConfig.Element("database_user")); ds.setPassword(ReadConfig.Element("database_pass")); stmnt = ds.getConnection().createStatement(); db_connected = true; kann ich auch bloß eine Abfrage gleichzeitig an die Datenbank senden. Überlappen sich zwei Abfragen (durch zwei gleichzeitig agierende Clients), so bekomme ich die Exception "Operation not allowed after ResultSet closed". Also generiere ich für jede Abfrage ein neues Statement und bekomme ein neues ResultSet zurück. Gibt es hierzu noch Anregungen/Anmerkungen oder Fragen? MFG KK
  4. Hallo ihr zwei, ich habe das Ganze nochmals grundlegend überarbeitet und setze jetzt auf c3p0. Ebenfalls ist mir der (wirklich dumme....) Denkfehler sauer aufgestoßen, sodass ich diesen ebenfalls bereinige. Jetzt stellt sich mir noch eine weitere Frage: Ist es sinnig, in jeder Funktion, die auf die Connection zugreift - also jedesmal, wenn ich eine Abfrage an die Datenbank sende - ein Statement stmnt = new Connect.getConnection(); ResultSet rs = stmnt.createStatement(); rs.executeQuery("SELE..."); zu machen, wobei getConnection nun die Connection von ComboPooledDataSource zurück gibt?! Oder würde es Sinn machen, in einer Datenbank-Klasse eine Funktion executeQuery(queryString) zu erstellen, die auf dasselbe Statement-Objekt zurück greift und entsprechend nur jedesmal ein return rs.executeQuery(sql); zurück gibt? MFG KK
  5. Hallo kingofbrain, Also würdest du sagen, dass die Funktion getConnection besser ds.getPooledConnection() zurück gibt, als ds.getPooledConnection().getConnection()? (pc wird erstellt mit ds.getPooledConnection(), also im Prinzip pc.getConnection()) Das Projekt C3P0 war mir bislang nicht geläufig. Hätte ich dadruch denn weitere Vorteile, die mir bei meinem jetzigen Problem fehlen? MFG KK
  6. Hallo, ich habe eine grundlegende Frage zur Arbeit mit Java und MySQL. Ich habe eine Klasse Connect, die folgendes Grundgerüst aufzeigt: pc = null; MysqlConnectionPoolDataSource ds = new MysqlConnectionPoolDataSource(); try { // Connection ds.setUrl(ReadConfig.Element("database_connectionstring")); ds.setUser(ReadConfig.Element("database_user")); ds.setPassword(ReadConfig.Element("database_pass")); // Reconnect ds.setAutoReconnect(true); ds.setAutoReconnectForConnectionPools(true); ds.setAutoReconnectForPools(true); pc = ds.getPooledConnection(); } catch (SQLException e) { new Exception(e.toString()); } Und eine weitere Funktion getConnection, die die Member-Variable pc zurück gibt. try { return pc.getConnection(); } catch (Exception e) { connect(); try { return pc.getConnection(); } catch (Exception ex) { new Exception(e.toString()); return null; } } Sobald ich eine Abfrage an die Datenbank stellen möchte, sieht der Ablauf folgendermaßen aus: Connection con = Connect.getConnection(); this.stmnt = con.createStatement(); ResultSet rs = this.stmnt.executeQuery("SELECT hose FROM kleidung WHERE name='Fritz'"); while(rs.next()) { (...) } Wenn ich also eine Abfrage absende, erstelle ich jedesmal ein neues ResultSet, das auf (in diesem Falle) this.stmnt zurück greift. Nun habe ich - wenn ich mehrere Abfragen in der Sekunde absende - einen Engpass, der sich folgendermaßen äußert: Manchmal kommt auch folgendes Szenario zustande: Jetzt frage ich mich, wie ich bei vielleicht 30-40 Abfragen (SELECT-Abfragen, alle WHEREs, GROUPs und ORDERs sind vernünftig indiziert) in der Sekunde so einen Engpass bekomme. Es handelt sich dabei um Abfragen über zwei Tabellen. Die eine zählt knapp 3.000 Einträge (wobei zwei Spalten ausgelesen werden) und eine weitere zählt knapp 5.000 Einträge, wo lediglich eine Bedingung auf eine Spalte der Tabelle besteht. Gehe ich die Abfrage nun generell falsch an oder wo kann dort mein Engpass liegen? Das grundlegende Problem dabei ist, dass ich nach Erhalt der Exceptions keine weiteren Abfragen mehr an die Datenbank senden kann. Erst., wenn ich den MySQL-Dienst neustarte, ist dies wieder möglich. Ich hoffe mir kann jemand helfen, auch gerne mit etwas guter Lektüre im Internet. Ich weiß nämlich nicht mehr, was ich noch weiter machen soll/kann. MFG KK
  7. Hallo Martin, am Liebsten natürlich proprietär. LG KK
  8. Hallo, mich erhaschte soeben folgendes Problem mit einer nüchternern Härte. Und zwar habe ich eine Software fertiggestellt, die folgende Komponenten benutzt: Apache Tomcat Apache HTTP NSIS (Nullsoft Installer - Stichwort Winamp) MySQL Eclipse Also folgende Lizenzen kommen zusammen: GPL (MySQL), EPL (Eclipse), Apache License (Apache-Produkte), zlib (NSIS). Dabei verwende ich eine Report-Engine von Eclipse, die einen Webserver (Apache) und einen Servlet-Container (Tomcat) benötigt, die wiederum auf MySQL zugreift. Alles zusammen ist in einem Installer verpackt, der mittels NSIS kompiliert wurde. Beim Installieren starte ich mittels msiexec den Installer von Apache und MySQL und installiere vollautomatisch in ein von mir vorgegebenes Verzeichnis. Die Installer von MySQL und Apache liefere ich also direkt im Installationspaket mit. Jetzt meine Frage (sehr nüchtern gestellt): Darf ich das Produkt so verkaufen? Stutzig macht es mich, dass MySQL einem dualen Lizenzsystem unterliegt, welches entweder properitär oder unter GPL steht. Muss ich hierzu Lizenzen von MySQL kaufen, da ich es im im Hintergrund recht simpel als Datenbank nutze? Ich connecte dabei über JDBC und ggf. über ODBC. Ich manipuliere keine Sourcen, verwende sämtliche Software lediglich als solche. Ich hoffe mir kann geholfen werden, mein Herz rast nämlich ein wenig. So wäre entsprechend einiges an Arbeit - wenn ich MySQL-Lizenzen kaufen muss - für die Katz, da sich das Prodult ggf. nicht mehr verkaufen ließe. LG KK
  9. Hallo, die Crypto++ Bibliothek ist ja enorm. Ich wage schon fast den Vergleich zwischen Ameisen und Atombomben. Wie erwähnt brauche ich bloß eine Chiffrierung, die mittels Schlüssel eine Zeichenkette verschlüsselt. Der Gegenpart hat den Schlüssel ebenfalls und kann die Zeichenkette wieder entschlüsseln. Ich finde mich bisher im Chiffrierung-Dschungel nicht so zurecht, wie ich mir das gedacht hatte. Irgendwie wirkt alles für meinen Anwendungsfall zu oversized. Vielleicht hast jemand noch etwas Geduld mit mir und hilft mir ein wenig. // Edit: Ich habe vergessen zu sagen, dass ich eine fixe Schlüssellänge von 6 Zeichen habe. Somit fällt leider auch das Beispiel "A C++ Implementation of the Rijndael Encryption/Decryption method" ins Wasser. LG KK
  10. Hallo, ich suche und suche, werde aber einfach nicht fündig. Und zwar benötige ich eine simple Klasse, der ein Schlüssel und ein Dateiname übergeben wird, und entsprechend eines mir irrelevanten Verschlüsselungsverfahrens, diese Datei anhand des Schlüssels verschlüsselt. Dabei sollte der Inhalt in keiner menschlich lesbaren Form vorliegen, sodass der Eindruck erst garnicht entsteht, die Datei zu entschlüsseln. Logischerweise sollte die Datei auch wieder entschlüsselbar sein. Und das auch nur mit exakt demselben Schlüssel, wie er auch zur Verschlüsselung verwendet wurde. Leider bin ich im Internet nicht so fündig geworden, wie ich mir das erhofft hatte. Und so etwas selber zu schreiben, finde ich unnötig verschenkte Zeit. Ich bin sicher, es gab vor mir schon jemanden, der ein ähnliches Problem hatte. Nur leider obliegt mir dieser jene welcher nicht. Ich hoffe mir kann geholfen werden und es hat jemand einen Link oder ein Beispiel parat. Mit freundlichen Grüßen, KK
  11. Hallo, kennt jemand von Euch eine Möglichkeit, um einen MySQL-Server in der Version 5.0.67 von Hand zu zerschießen, sodass ein REPAIR TABLE von Nöten ist, um die Tabellen wieder zu reparieren? Oder auch anders gefragt, welche Ursachen kann es haben, dass sich eine MyISAM-Tabelle zerschießt? Mfg Tom
  12. Hallo, mit einem Ubuntu Live-System habe ich getestet, ob der Rechner ebenfalls bei USB-Produkten abstürzt. Das war nicht der Fall. Ich konnte also davon ausgehen, dass es kein elektrisches Problem gibt und der Fehler auf Windows-Ebene zu suchen ist. Wie Du schon geschrieben hast, habe ich die Treiber einmal neu installiert, so auch den des USB Host-Controllers. Und siehe da - das Problem ist gelöst. Es hat sich also tatsächlich der USB-Treiber zerschossen. Warum auch immer. Ich bedanke mich für die zahlreiche Hilfe und Tipps. Mfg Tom
  13. Es ist ein Fehler der Kategorie "PAGE_FAULT_IN_NONPAGED_AREA". Dazu habe ich folgende Seite gefunden. Mittlerweile zweifel ich daran, ob es sich wirklich um eine Art Spannungsspitze handelt, die den Rechner zum herunterfahren zwingt. Jedoch bin ich mit meinem Latein langsam am Ende. Was wäre denn noch zu machen? Mfg Tom
  14. Hallo, ja es tritt ein Bluescreen auf, der den Rechner zum Stillstand bringt. Habe schon versucht den Treiber über die beigelegte CD zu installieren, doch die Installation wünscht das Einstecken des W-LAN Sticks. Das gelingt nicht, da wieder der Bluescreen auftritt. Wenn ich meinen USB-Stick einstecke, so tritt ebenfalls der Bluescreen auf. Die Bootreihenfolge impliziert keinerlei USB-Devices. Würde ein USB-Hub da Abhilfe verschaffen? Leider bin ich mir nicht sicher, ob der Bluescreen auch auftritt, wenn der USB-Port eine Spannungsspitze erzeugt, die den Rechner neustarten lässt (meine anfängliche Vermutung, die aber durch den Bluescreen ins Zweifeln gerät). Mfg Tom
  15. Hallo, die Tatsache, dass der Anschluss des Handys über USB zur Datenübertragung funktioniert, lässt mich darauf schließen, dass es sich um ein elektronisches Problem handeln könnte. Jetzt habe ich bei reichelt ein wenig nach USB-Hubs mit externer Stromversorgnung geschaut. Zur Not müsste ein solches Gerät her halten. Ich werde heute Abend nochmal meinen USB-Stick versuchen, und zum anderen den W-LAN Stick in meinem Notebook testen. Wenn der W-LAN Stick bei mir läuft, und der USB-Stick keinen Absturz verursacht, würde ich den Weg suchen, den USB-Geräten über das externe Hub Strom zu geben. Ich halte Euch auf dem laufenden. Btw. taugt ein Gerät für 9,30 Euro aus dem reichelt-Shop wohl etwas? Mfg Tom

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...