Members of the MySQL Support Team wear a number of different hats here at Oracle. Obviously, our top priority is to provide amazing technical support that makes customers rave. We also have a team dedicated to processing bug reports from the MySQL Community. Some of us are active bloggers or assist on mailing lists or forums, while others find other ways to contribute to the MySQL Community. We help out with QA and product planning, write …[Read more]
The MySQL documentation section has always had this Topic Guides page containing links to the docs for the various MySQL Connectors -- the official database drivers for various languages and programming technologies. That is the most convenient way to get the information for each Connector in PDF form, rather than downloading the entire Ref Man PDF. For HTML, it was more of a shortcut, because
Having supported a number of successful load-balanced JDBC applications using MySQL Cluster and MySQL Connector/J over the years, I’ve found a few problems that are unique to specific Java app servers. A recent customer inquiry reminded me of a GlassFish-specific issue, and the Connector/J connection property we introduced to help solve it. I thought it might be useful to document this here for any GlassFish users looking to deploy a load-balanced JDBC application with MySQL (Cluster or multi-master replication).[Read more]
I’m posting this because of a question raised against this older post on how to configure the
%CLASSPATH% to find the
file. This is the lab file I use in my Database 1 class to expose
students to the moving parts of writing Java programs against the
Oracle database. That’s why I choose to use a
data type, which requires Oracle’s
and wrapping stored procedures.
If you want the same content for MySQL, here’s the link. The full program in either blog entry is available by clicking on the fold/unfold Java Source Code Program widget at the bottom of the respective posts.
This demonstrates how to create an Java infrastructure for reading …[Read more]
A couple students in one of my classes ran into a problem when
competing Java threads tried to insert new rows in a table. They
raised an error when they tried the
DELAY keyword to
avoid the race (collision) condition in an
statement. It was simple to explain to them that the
DELAY keyword doesn’t work with an
InnoDB table. Any attempt throws the following error:
ERROR 1616 (HY000): DELAYED OPTION NOT supported FOR TABLE 'message'
INSERT DELAYED is gone
in MySQL 5.6.6 (announcement) and the whole issue comes down to
synchronizing threads (some dislike the solution) or using the
ON DUPLICATE KEY …
Instead of using the old DriverManager its the better way to use the DataSource class to get a connection to a MySql Database. This can be done by geting it from the app server container or by creating and configuration it directly from the driver. Get the MySQL datasource from the app container Context context [...]
The MySQL Cluster engineering team recently ran a live webinar, available now on-demand demonstrating the ClusterJ and ClusterJPA NoSQL APIs for MySQL Cluster, and how these can be used in building real-time, high scale Java-based services that require continuous availability.
Attendees asked a number of great questions during the webinar, and I thought it would be useful to share those here, so others are also able to learn more about the Java NoSQL APIs.
First, a little bit about why we developed these APIs and why they are interesting to Java developers.
ClusterJ and Cluster JPA
ClusterJ is a Java interface to MySQL Cluster that provides either a static or dynamic domain object model, similar to the data model used by JDO, …[Read more]
For Drizzle and for all of the projects we work on at Percona we use the Bazaar revision control system (largely because it’s what we were using at MySQL and it’s what MySQL still uses). We also use Jenkins.
We have a lot of jobs in our Jenkins. A lot. We build upstream MySQL 5.1, 5.5 and 5.6, Percona Server 5.1, Percona Server 5.5, XtraBackup 1.6, 2.0 and 2.1. For each of these we also have the normal trunk builds as well as parameterised ones that allow a developer to test out a tree before they ask for it to be merged. We also have each of these products across seven operating systems and for each of those both x86 32bit and 64bit. If we weren’t already in the hundreds of jobs, we certainly are once you multiply out between release and debug and XtraBackup being across so many MySQL and Percona …[Read more]
In Ausgabe 3/2012 der Fachzeitschrift JavaSPEKTRUM wurde kürzlich ein Artikel mit dem Titel "SOA-basierte NoSQL-Lösung im Mobile-Umfeld" veröffentlicht, dessen Co-Author ich bin. Er beschreibt, wie eine mobile Java-Applikation mittels kreativer Ansätze und einem Mix aus moderner und altbewährter Technik zum Erfolg gebracht wurde.
My old post (http://www.jroller.com/mmatthews/entry/speeding_up_batch_inserts_for) on the performance gains from batch rewritten statements gets regurgitated in various forums, and conference sessions, and often people miss the nuances of it.
Under the hood, what is happening with this feature is the following:
(1) The driver attempts to detect that the SQL being prepared is
an INSERT. We (on purpose) don‘t ship a full-fledged parser in
the driver, so this works 95% of the time. For the other 5%,
you‘re out of luck unless you can simplify your query text.
(2) If the statement is an INSERT, the driver attempts to determine if it can be rewritten as a multi-value INSERT. From the code itself, the conditions are:
// Needs to be INSERT, can‘t have INSERT … SELECT or
// INSERT … ON DUPLICATE KEY UPDATE …