Quando si utilizza Tomcat con MySQL, qual è la relazione tra l'impostazione poolPreparedStatements nella configurazione di Tomcat DataSource (credo proveniente da DBCP) e l'impostazione Connector/J cachePrepStmts? Qual è la configurazione ottimale?Pooling PreparedStatement su Tomcat con MySQL
risposta
poolPreparedStatements è un'impostazione per il pool di connessione JCBC Tomcat e cachePrepStmts è un'impostazione per Connector/J per indicare a MySQL di memorizzare le istruzioni preparate nella cache. Due cose completamente diverse. cachePrepStmts è un'impostazione per connessione, ma Connector/J non si preoccupa di connettersi direttamente a un pool di connessioni di database oa MySQL, tuttavia cachePrepStmts funziona al meglio con le connessioni persistenti (ad esempio i pool di connessione). Utilizzare cachePrepStmts con un pool di connessioni è la configurazione ottimale. L'utilizzo di poolPreparedStatements in Tomcat consiste nell'aprire una lattina di worm di gestione della memoria (controlla i documenti Tomcat per questa impostazione e vedrai). In realtà, è meglio lasciare a MySQL la cache delle istruzioni preparate e lasciare che Tomcat raccolga le connessioni e non provi a fare in modo che uno faccia il lavoro dell'altro.
Non sicuro se questo sarà di aiuto, ma dare un'occhiata a the accepted answer of this question.
- 1. tomcat 7.0.42 pooling, hibernate 4.2, mysql rock soluto soluzione autoreconnect
- 2. jetty mysql database pooling pool
- 3. Database pooling pooling con servizio multi-thread
- 4. query SQL eseguire con PreparedStatement
- 5. PreparedStatement con Statement.RETURN_GENERATED_KEYS
- 6. pymongo pooling pooling e richieste client
- 7. Perl Connection Pooling
- 8. PreparedStatement setNull (..)
- 9. Cosa significa "pooling = false" in una stringa di connessione MySQL?
- 10. Impossibile memorizzare contenuto UTF-8 in MySQL utilizzando Java PreparedStatement
- 11. collegamento registrazione pooling per org.apache.commons.dbcp.BasicDataSource con molla
- 12. Phusion Passenger e database pooling
- 13. Come distribuire WAR con Maven su Tomcat?
- 14. plug-in maven tomcat con driver mysql in $ catalina_home/lib
- 15. setObject() metodo di PreparedStatement
- 16. Datastax - Is PreparedStatement threadsafe?
- 17. PHP su Tomcat 8
- 18. Quali caratteri verranno scappati in PreparedStatement?
- 19. Applicazione web in esecuzione sia su Jetty che su Tomcat
- 20. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException MySQL + Apache Tomcat 7
- 21. Come configurare l'applicazione Java (tomcat e mysql) su Amazon AWS con Auto Scaleup e Load balancers?
- 22. Inserimento dei dati BLOB in Java con PreparedStatement
- 23. MySQLSyntaxErrorException quando si tenta di eseguire PreparedStatement
- 24. Riutilizzare un parametro in PreparedStatement?
- 25. Come ottenere parametri da PreparedStatement?
- 26. Distribuire l'app AngularJS su tomcat
- 27. PreparedStatement con migliaia di parametri in una clausola IN
- 28. Utilizzo di jamon.war su tomcat
- 29. più applicazioni Grails su Tomcat
- 30. Come aggiornare Tomcat su Linux
Quindi, stai suggerendo che Connector/J farà un lavoro migliore di DBCP per il raggruppamento di istruzioni preparate, giusto? Inoltre, trovo questo confuso: "Connector/J non si preoccupa di connettersi a un pool di connessioni di database o direttamente a MySQL". Connector/J è a un livello inferiore rispetto a DBCP, quindi si connette sempre a MySQL direttamente, giusto? – ykaganovich
No, MySQL svolgerà un lavoro migliore di memorizzazione nella cache di istruzioni preparate rispetto a DBCP, quindi imposta il flag cachePrepStmts nelle connessioni Connector/J e lascia il pooling dell'istruzione prep DBCP da solo. Connector/J si connette direttamente a MySQL e DBCP raggruppa un sacco di connessioni Connector/J. Immagino che il mio commento sia confuso e confuso. –