tag:blogger.com,1999:blog-79811522131047733532009-05-25T11:28:57.513-04:00JDBC Connections<b>Welcome to the <a href="http://www.data-conn.com">Data-Conn.com</a> network.</b>
<b>
<br><a href="http://www.odbc-connection.com">ODBC-Connection</a>
<br><a href="http://www.jdbc-connection.com">JDBC-Connection</a>
<br><a href="http://www.dotNET-connection.com">dotNET-Connection</a>
<br><a href="http://www.xml-connection.com">XML-Connection</a>
<br><a href="http://www.mainframe-connection.com">Mainframe-Connection</a>
<br><a href="http://www.datadirect.com">DataDirect.com</a></b>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.comBlogger20125tag:blogger.com,1999:blog-7981152213104773353.post-34160265786133102732009-01-24T15:43:00.000-05:002009-01-24T15:44:11.636-05:00JDBC Back to Basics: Part 1: Connecting<p>In this JDBC Basics series we'll go through the basic steps needed to get a knowledge of JDBC. Following this series we'll go through more advanced features of JDBC drivers, such as advanced security (Kerberos, etc...), performance tuning, etc.. For completeness, we'll show code examples for SQL Server, Oracle, DB2, Sybase, Informix, and MySQL as we know everyone in the world doesn't use the same database to store data.</p><br /><p>The following posts are currently available in this series. This list will be updated as posts are written and will be contained at the top of each post in the series.<br /></p><br /><ul><br /> <li>Connecting (this post)</li><br /></ul><br /><p>So, you want to write a Java application to get some data - you've come to the right place! Getting connected and fetching your data is easy using the JDBC Standard API that comes in the JDK. Let's jump right in by throwing out some code for connecting to SQL Server:</p><br /><p style="font: 11.0px Monaco; color: #2a00ff"><span style="color: #000000">Class.forName(</span>"com.ddtek.jdbc.sqlserver.SQLServerDriver"<span style="color: #000000">);</span></p><br /><p style="font: 11.0px Monaco; color: #2a00ff"></p><br /><p style="font: 11.0px Monaco; color: #2a00ff"><span style="color: #000000;"><span style="color: #000000">String url =</span> <span style="color: #000000">"jdbc:datadirect:sqlserver://nc-pgm1:1433;databaseName=master";</span></span></p><br /><p style="font: 11.0px Monaco; color: #2a00ff"></p><br /><p style="font: 11.0px Monaco"><span style="color: #000000;">Connection con = DriverManager.getConnection(url, <span style="color: #2a00ff">"user1"</span>, <span style="color: #2a00ff">"pass1"</span>);</span></p><br /><p>There we go, easy enough. The first line which has the Class.forName is not necessary if you are using a driver that supports the JDBC 4.0 autoloading feature and Java SE 6. Therefore, you could remove this line altogether leaving you with 2 lines to connect to your SQL Server database. The URL is easy to deciper as well - he first part is which driver you want to use "jdbc:datadirect:sqlserver", followed by the server machine name (or IP address), port number, and database that you want to connect to. Lastly, you get the actual connection object passing in the url, user, and password. We'll go over Kerberos, Windows Auth and other security specifics in another post.</p><br /><p>Ok, so what do you do after connecting? In my demo application, I like to print out some server information from the DatabaseMetaData object (helps to make sure I'm using what I think I am). Here's the code:</p><br /><p style="font: 11.0px Monaco">DatabaseMetaData dbmd = con.getMetaData();</p><br /><p style="font: 11.0px Monaco">System.out.println( <span style="color: #2a00ff">"\nConnected with "</span> + dbmd.getDriverName()</p><br /><p style="font: 11.0px Monaco">+ <span style="color: #2a00ff">" "</span> + dbmd.getDriverVersion()</p><br /><p style="font: 11.0px Monaco">+ <span style="color: #2a00ff">" to "</span> + dbmd.getDatabaseProductName()</p><br /><p style="font: 11.0px Monaco">+ <span style="color: #2a00ff">" "</span> + dbmd.getDatabaseProductVersion() + <span style="color: #2a00ff">"\n"</span>);</p><br /><p>This gives us a nice line that shows what you got connected to and with what driver version. Helps a ton when you're checking your output or have to send the output to someone else to look at.</p><br /><p>Well, that's it for connecting - pretty straightforward. We'll continue next time with a different driver and start creating and working with tables!</p><br /><br /><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-3416026578613310273?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-53400585450229056082008-08-30T15:54:00.001-04:002008-08-30T15:54:53.683-04:00Hot off the presses JDBC 4.0 release - and why you care!<a href="http://www.flickr.com/photos/jdbcconnection/2410153371/" title="CyberGutenbergSmall by jdbc.connection, on Flickr"><img src="http://farm4.static.flickr.com/3108/2410153371_a0dd671bc2.jpg" width="320" height="316" alt="CyberGutenbergSmall" /></a><br /><p>What's the big deal you say? Well, we now have the best client-side application failover of any JDBC drivers. It makes Oracle TAF look like a toy. To start with, we do not require that you use an expensive server-side technology like Oracle RAC, DB2 HADR, or Microsoft Clustering. Although not required, the drivers support these technologies but we just don't feel like you should have to shell out all the moola if your mirroring system has been working for you - we need to work with what you've got. Additionally, we use standard SQL states and error codes - none of the "proprietary" error code issues you get when working with other failover technologies. Have you ever tried to just use failover with an existing application? If you've got to change hundreds of lines of code to get proprietary error codes checked then it's just a bad failover implementation in my opinion. Ok, enough of the "ours is the best" let's just explain how it works.</p><br /><p>To use our failover, all you need to do is specify the alternate server(s) by using the alternateServers connect option. Then, specify the level of failover you'd like by setting the failoverMode connection option. You can set connect, extended, or select failover modes.</p><br /><p>Connect failover is the "Let's make sure we <em>get</em> connected" mode. This will attempt a connection to the primary server, and if that fails, the first alternate server, and so on until it gets connected to something. Number of retries and additional connection attempts are all configurable using additional options. After the initial connection, the driver doesn't do anything to make sure you stay connected. That leads us to the next failoverMode.</p><br /><p>Extended failover is the "Let's make sure we <em>stay</em> connected" mode. This mode handles the case where you're connected and something bad happens (node goes down, power failure at station 1, etc..) that kills the connection to the server. When extended failover is set, the driver catches the connection failure error and attempts a connection to the alternate server (we'll iterate through the list if we don't get connected to the first one). Once connected, the driver ensures that all the connection options are replayed, and all the statements are re-prepared, but not re-executed. In essence, this mode of failover makes it look as if you had a transaction failure instead of a connection failure - useful if your application is coded to handle transaction failures and not connection failures. But what if you want to replay everything, including selects? Let's take a look behind door number 3....</p><br /><p>Select failover is the "Let's make it look like we never got disconnected" mode! This is the most complex of the three modes as it not only reconnects and replay/reprepare, but it also repositions you in your resultSet! Yes folks, a little Java magic for us all - just in time for Christmas! How does it work? Well, once the driver reconnects and replays / reprepares your statements, we will re-execute the selects (not the inserts - that's dangerous) and we check the rows returned and put you back on the same row as you were before. From the application perspective, resultSet.next() or resultSet.getString(5) returns as if nothing happened. Give it a try and see which one works best for your environment.</p><br /><p>That's not all we did in our 4.0 release either. We now support the full JDBC 4.0 specification - and in a way that no other JDBC drivers do: one jarFile will work for all versions of the JDK that we support. No seperate jar file if you want to use a Java SE 6 and a seperate jar file if you want to use a Java SE 5 environment! The driver intelligently figures out the correct class interfaces to load, saving you configuration time in the process. Just plug in and go.</p><br /><p>That's it for the announcement, I'll be blogging about the new features more next week - stay tuned for SQLXML examples, NCHAR explanations, and more ease of use features. We'll also go over some of the new Oracle 11 and DB2 v9.5 features.</p><br /><p>The new Connect for JDBC 4.0 release is hot off the presses and available for download <a href="http://www.datadirect.com/products/jdbc/index.ssp">here.</a></p><br /><br /><a href="http://www.addthis.com/bookmark.php" onclick="addthis_url = location.href; addthis_title = document.title; return addthis_click(this);" target="_blank"><img src="http://s9.addthis.com/button1-bm.gif" width="125" height="16" border="0" alt="AddThis Social Bookmark Button" /></a><br /><br /><br /><br /><br /><br /><br /><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-5340058545022905608?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-35726973299246527172008-07-02T20:32:00.001-04:002008-07-02T20:32:25.580-04:00Can a SQL dog learn a new trick?<p>Ok, I admit it. I'm a relational guy. SQL is my language of choice - the old standby that does it all, why would I need more?!?</p><br /><p>Another tool in my toolbox you say? Something for when SQL is not enough or I want to do more? The world isn't all rows and columns you say? Hmm.....I do like getting new tools. Perhaps I should learn some of this XML and XQuery hierarchal stuff - it could come in handy, no? Well where does an old SQL dog like me start?</p><br /><p>First, you need some really smart friends who know this stuff already and are willing to share. Not someone who will share as an I-know-more-than-you guy, but someone who will share as a this-is-really-cool-technology-you-should-know guy. Otherwise you can start to head down a path and with nobody to help you sort it out you could get discouraged and quit - leaving you with no new tools. It just so happens that we have some guys here that know a thing or two about this XML and XQuery stuff and are willing to share and teach us SQL dogs some new tricks! wOOt!</p><br /><p>Marc and Minollo are my friends that I'm talking about and they're starting a new series, "<a href="http://www.xml-connection.com/2008/06/xquery-for-sql-programmer-introduction.html" title="SQL programmers - learn XQuery!">XQuery for the SQL Programmer</a>" and I for one plan to follow it. Who knows, it may come in handy when we start to work with the SQLXML types in JDBC 4.0...........</p><br /><p>See you there!</p><br /><br /><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-3572697329924652717?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-21471210662524227512008-06-02T08:23:00.001-04:002008-06-02T08:23:28.037-04:00Virtualization and Data Connectivity<br /><br /><span style="color: #333333; font-family: Verdana; -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px;"><span style="color: #000000; font-family: Helvetica; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px;"><a href="http://soa.sys-con.com/read/577574.htm" title="Don't let inefficient data access undermine your virtualization goals.">The Importance of Data Connectivity to Virtualization</a></span></span><br /><br /><blockquote><br /> <p>Data center architects naturally seek to employ server virtualization to maximize the use of their hardware systems. However, one factor – often overlooked – carries real potential to undermine this goal. That factor is data connectivity. This article examines the importance of data connectivity in a virtualized environment, and the need to take an intelligent approach to data access to truly reap the benefits of your virtualization strategy.</p><br /></blockquote><br /><p>Just recently, a really good friend of mine, Mike Johnson, was published in SOA Magazine reflecting on why Data Connectivity is so important in virtualized environments. As people move to consolidate server and IT infrastructure for various reasons it is good to know that someone is actually THINKING about how this will affect your performance for your most important applications - those that access business critical data. Take a quick read through the article to see how it can help save you time and money in your virtualization efforts.</p><br /><br /><a href="http://www.addthis.com/bookmark.php" onclick="addthis_url = location.href; addthis_title = document.title; return addthis_click(this);" target="_blank"><img src="http://s9.addthis.com/button1-bm.gif" width="125" height="16" border="0" alt="AddThis Social Bookmark Button" /></a><br /><br /><br /><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-2147121066252422751?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-89306745104674820972008-05-02T15:26:00.001-04:002008-05-02T15:26:26.695-04:00Cloud Computing - is it a good idea?<p>We have all seen google app engine, amazon's web services, SQL Server Data Services (SSDS) from Microsoft, and others. The whole premise behind the movement is to make your IT infrastructure "rentable". I for one think that this is both a great idea and a bad one all at once. For instance, it makes coding mashups a breeze - on the other hand you have concerns about where your data is and if it is secure. The whole trend is something to keep an eye on as it is gaining in popularity.</p><br /><br /><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-8930674510467482097?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-28605994289640660432008-04-15T10:03:00.005-04:002008-04-15T19:22:32.148-04:00What is Google App Engine?<p><a href="http://code.google.com/appengine/" title="google_appengine"><img src="http://farm3.static.flickr.com/2200/2416333350_d4ffaa3ab0_m.jpg" width="240" height="240" alt="google_appengine" /></a></p><p>What is Google App Engine? Here is a good description from their website:</p><blockquote> <p style="padding-top: 1em; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 125%;"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:verdana;">Google App Engine makes it easy to build an application that runs reliably, even under heavy load and with large amounts of data. The environment includes the following features:</span></span></span></p><ul style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0.5em; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; line-height: 125%;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:verdana;"><br /></span></span> <li style="margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:verdana;">dynamic web serving, with full support for common web technologies</span></span></span></li> <li style="margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:verdana;">persistent storage with queries, sorting and transactions</span></span></span></li> <li style="margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:verdana;">automatic scaling and load balancing</span></span></span></li> <li style="margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:verdana;">APIs for authenticating users and sending email using Google Accounts</span></span></span></li> <li style="margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:verdana;">a fully featured local development environment that simulates Google App Engine on your computer</span></span></span></li></ul></blockquote><p>I love it that Google eats their own dog food. These guys didn't invent a new "product" or come up with something to sell to the masses; they're using the same things that they built their company on! They have enough faith in their internal infrastructure that they're using it to allow us (the masses) to use these great products to build some really neat applications. Google is using the following components for their framework: Python application servers (more languages forthcoming), <a href="http://labs.google.com/papers/bigtable.html">BigTable</a> (Google's home grown database), and <a href="http://labs.google.com/papers/gfs.html">GFS</a> (Google File System) data store services</p><p>As pointed out by TechCrunch <a href="http://www.techcrunch.com/2008/04/07/google-jumps-head-first-into-web-services-with-google-app-engine/">here</a>, this appears to be in response to Amazon's suite of web application enabling services: <a href="http://www.amazon.com/gp/browse.html?node=16427261">S3</a> (storage), <a href="http://www.amazon.com/gp/browse.html?node=201590011">EC2</a> (virtual servers), and <a href="http://www.amazon.com/SimpleDB-AWS-Service-Pricing/b/ref=sc_fe_l_2?ie=UTF8&node=342335011&no=3440661&me=A36L942TSJ2AJA">SimpleDB</a> (database). The difference is that Google is offering the whole stack instead of more loosely coupled services. Some SOA junkies would argue that this is not what they want, but I would beg to differ. First, it's Google doing what Google does well: offer everything seamlessly so that a developer can easily get one SDK, use one API, and one common environment to get an application written and deployed quickly. Basically, my money is on Google.</p><p>Now, if I were only one of the first 10,000 who got in on the Beta! Here's hoping to a quick run through the wait list! I'll probably download the SDK to play with anyway; I really want to see how Google's Query Language (GQL) stacks up against my favorite: SQL.</p><a href="http://www.addthis.com/bookmark.php" onclick="addthis_url = location.href; addthis_title = document.title; return addthis_click(this);" target="_blank"><img src="http://s9.addthis.com/button1-bm.gif" width="125" height="16" border="0" alt="AddThis Social Bookmark Button" /></a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-2860599428964066043?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-59342022171032548392008-04-11T21:58:00.002-04:002008-04-13T14:05:26.040-04:00Programming for multi-core performance - in Java?<img border="0" src="http://farm4.static.flickr.com/3021/2410151545_f0392bc7b0_m.jpg" width="240" height="203" alt="intel_quadcore" />Performance is a huge concern when writing any Java code, especially since many still do not realize the benefits of coding to a hotspot vm and believe Java to be a "slower" language than something like C/C++. As someone with a hardware background, I frequently hear that faster computers are the answer. To an extent, they are correct. To this end, processor architects have been putting more processing power in our beloved machines by adding nifty new technology like hyper-threading, cores, and increasing the on-die caches in recent years. All this is great; however, we can tap this power to a greater extent if we software guys have ways to program closer to this type of hardware.<br /><br /><p>Back in college, we had a homework assignment to finish adding the hardware in a CPU necessary for the jump assembly command. We did our diagrams and loaded it all into our CAD tool. After we had the full layout of the processor in memory (first time of course!) we had to do some testing. So, we used VERILOG for the first time, and doing so was quite an experience. We were rudely introduced to a programming style that was purely parallel; we were basically coding electrical impulses through tiny wires. In any case, it is a very different feel than doing your standard sequential programming (Java/C/C++/C#)and it is more than a little difficult to get accustomed to. The first few times we tried it we encountered many race-through issues and problems making sure all the code paths lined up. It was quite a learning experience indeed.</p><p>For the past few years, there have been many discussions on how to best program threads for this environment in the C/C++ languages. Intel has many good documents on the OpenMP API (<a href="http://www.developers.net/intelisdshowcase/view/2095">here's a good one</a>), along with some interesting comparisons (and arguments) to using PThreads as well. However, what about us Java guys, and could there be a better way than straight-up thread programming?</p><p>As I said before, parallel programming is interesting, but it's extremely difficult to master. In addition, we must take into account scalability - programming for 2 cores may be different than programming for 100 cores (thinking ahead, of course). Is it unreasonable for us to find a way to abstract the threading and split up work when the JIT compiling takes place? I hope not, because doing so would be really nifty, especially since the Jedi Thread Masters among us are few and far between.</p><p>Enter JSR-166 and JSR-166y fork/join framework! According to Doug Lea, the framework is "a style of parallel programming in which problems are solved by (recursively) splitting them into subtasks that are solved in parallel, waiting for them to complete, and then composing results." Here is his pseudo code to demonstrate:</p><pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"><br /><code>Result solve(Problem problem) {<br />if (problem is small)<br /> directly solve problem<br />else {<br /> split problem into independent parts<br /> fork new subtasks to solve each part<br /> join all subtasks<br /> compose result from subresults<br />}<br />}<br /></code><br /></pre><p>I think this is a really big step in the right direction for Java, but is not quite the holy grail of multi-thread abstraction for the masses. I'm still researching this framework, but at first glance, the framework appears to allow the application to be coded such that depending on the size of the task/algorithm, one can easily fork/spawn a separate subtask that is computed in parallel (waiting for them all to complete of course), then joining them back together. This has enormous potential in my opinion!</p><p>I'm going to continue my research and will post my thoughts here. In the meantime, take a look at Doug Lea's paper, "<a href="http://gee.cs.oswego.edu/dl/papers/fj.pdf">A Java Fork/Join Framework</a>" as well as some of the existing JSR-166 collections in Java SE 6: <a href="http://java.sun.com/javase/6/docs/api/java/util/Deque.html">Deque</a>, <a href="http://java.sun.com/javase/6/docs/api/java/util/concurrent/BlockingDeque.html">BlockingDeque</a>, <a href="http://java.sun.com/javase/6/docs/api/java/util/NavigableSet.html">NavigableSet</a>,<a href="http://java.sun.com/javase/6/docs/api/java/util/NavigableMap.html">NavigableMap,</a> <a href="http://java.sun.com/javase/6/docs/api/java/util/concurrent/ConcurrentNavigableMap.html">ConcurrentNavigableMap</a>, <a href="http://java.sun.com/javase/6/docs/api/java/util/ArrayDeque.html">ArrayDeque</a>, <a href="http://java.sun.com/javase/6/docs/api/java/util/concurrent/LinkedBlockingDeque.html">LinkedBlockingDeque</a>, <a href="http://java.sun.com/javase/6/docs/api/java/util/concurrent/ConcurrentSkipListSet.html">ConcurrentSkipListSet</a>,<a href="http://java.sun.com/javase/6/docs/api/java/util/concurrent/ConcurrentSkipListMap.html">ConcurrentSkipListMap,</a> <a href="http://java.sun.com/javase/6/docs/api/java/util/TreeMap.html">TreeMap</a>.</p><p>Resources:</p><p><a href="http://gee.cs.oswego.edu/dl/papers/fj.pdf">A Java Fork/Join Framework</a> by Doug Lea</p><p><a href="http://g.oswego.edu/dl/concurrency-interest/">Concurrency Interest Site</a></p><p><a href="http://jcp.org/en/jsr/detail?id=166">JSR-166 Site</a></p><a href="http://www.addthis.com/bookmark.php" onclick="addthis_url = location.href; addthis_title = document.title; return addthis_click(this);" target="_blank"><img src="http://s9.addthis.com/button1-bm.gif" width="125" height="16" border="0" alt="AddThis Social Bookmark Button" /></a><br /><br /><script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-5934202217103254839?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com1tag:blogger.com,1999:blog-7981152213104773353.post-35225562460030417132008-04-11T19:07:00.002-04:002008-04-11T22:06:05.902-04:00New NASA Website - nasascience.nasa.gov/ !<p>Ok, I know this is a data access blog, but I'm a geek. A real big uber geek and I love outer space. Therefore I was really excited to come across NASA's new website today! Here's the link:</p><a href="http://nasascience.nasa.gov/">http://nasascience.nasa.gov/</a><br /><br />Some of my favorite things to look at are pictures from space. So, it's the weekend and I'll share the NASA multimedia image gallery site as well:<br /><br /><a href="http://www.nasa.gov/multimedia/imagegallery/">http://www.nasa.gov/multimedia/imagegallery/</a><br /><br />These make great backgrounds and really mark you as a space cadet! Images of all the planets, black holes, everything looks great. I'm nearly done now, here is the link to the hubble site:<br /><br /><a href="http://hubblesite.org/">http://hubblesite.org/</a><br /><br />Next time more on data access, I promise.<br /><br /><a href="http://www.addthis.com/bookmark.php" onclick="addthis_url = location.href; addthis_title = document.title; return addthis_click(this);" target="_blank"><img src="http://s9.addthis.com/button1-bm.gif" width="125" height="16" border="0" alt="AddThis Social Bookmark Button" /></a><br /><br /><!-- AddThis Bookmark Button END --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-3522556246003041713?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-57471474287323757892008-04-09T12:01:00.004-04:002008-04-11T22:07:06.743-04:00JDBC 4.1 BoF at JavaOne 2008!<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script><p>Just a quick note to say that the JDBC Expert Group (of which I'm unashamedly a part) will be having a Birds of a Feather session on Tuesday night at this year's JavaOne conference! Please drop by and let us know if you have any input on what we're considering and working on for the upcoming JDBC 4.1 features list! Below is the description of the BoF:</p><blockquote> <p>This BOF session brings together members of the JDBC Expert Group and other people interested in finding out more about the features being targeted for the JDBC 4.1 specification and its progress to date to discuss priorities and directions for work within the context of the JSR.</p> <p>The JDBC 4.1 technology is being targeted for the Java Platform, Standard Edition 7 (Java SE 7 Platform).</p></blockquote><p>I don't want to spoil anything for Lance, but we've got some really nice things to add to the spec for the next version to make JDBC Data Access better than ever.</p><!-- AddThis Bookmark Button BEGIN --><br /><a href="http://www.addthis.com/bookmark.php" onclick="addthis_url = location.href; addthis_title = document.title; return addthis_click(this);" target="_blank"><img src="http://s9.addthis.com/button1-bm.gif" width="125" height="16" border="0" alt="AddThis Social Bookmark Button" /></a> <script type="text/javascript">var addthis_pub = 'jldavis007';</script><script type="text/javascript" src="http://s9.addthis.com/js/widget.php?v=10"></script><br /><!-- AddThis Bookmark Button END --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-5747147428732375789?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-33107431034265855672008-04-07T10:49:00.002-04:002008-04-11T22:07:53.101-04:00Secure Mashups with SMash<p>I was doing some investigation into web service security, and ran across another nifty IBM tool: SMash. Smash (meaning secure mashups) is basically a technology designed to solve security problems when writing a mashup (a.k.a. situational application). These applications generally consume data/information from several different web services, and you need to ensure that there are measures in place to secure the data that they give to their calling applications.</p><p>Security is a concern by IT departments as mashups are typically written by non-IT staff and there is potential for leaked security. So, IBM wrote (and donated) SMash so that you can now authenticate your AJAX Web Services (Smash is javascript, so it's AJAX only at the moment). This is nifty as it appears as though you can secure your mashups by making sure that they can only access certain services you approve, or you can do other certificate based authentication.</p><p>The only issue I see with this is that it's non-standard. If the future is in services, seems like we should strive to come together and come up with a standards based way to do web service security (would WS-Security fit here?).</p><p>Well, since this is only javascript, I'm back to my research. For now, if you're interested in SMash, try out the code <a href="http://sourceforge.net/projects/openajaxallianc" title="OpenAjax Alliance">here</a> (part of OpenAjax) or read more in <a href="http://domino.research.ibm.com/library/cyberdig.nsf/1e4115aea78b6e7c85256b360066f0d4/0ee2d79f8be461ce8525731b0009404d?OpenDocument">this whitepaper</a> from IBM.</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-3310743103426585567?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-62596231331108675942008-01-30T14:42:00.000-05:002008-01-30T15:09:33.495-05:002008 Data Access PredictionsBloggers are seemingly required to make a list of predictions for 2008. My colleague, Jonathan Bruce has opted out of this and instead highlighted some of his favorites. Since I'm not as "distinguished" as JB in the blogosphere, I'm going to take a stab at my data access predictions (plus a couple of others):<br /><br /><ol><br /><li>Microsoft will make a decision on the direction on LINQ....ok, even I'm dubious on this one. :)</li><br /><li>IBM will continue to develop their Data Studio (previously named JLINQ and pureQuery).</li><br /><li>Databases will contine to develop their XML/XQuery support (this one is kinda obvious).</li><br /><li>DB Vendors will continue to make concessions in their proprietary code to allow users to make easier transitions to new databases. (like several SQL syntax changes made to DB2 v9.5 for oracle syntax).</li><br /><li>Virtualization will be a hot new term, but will mean the same thing it did when it was introduced on the mainframe.....in the 1960s.</li><br /><li>Oracle will try to rebrand BEAs AquaLogic as "Oracle Fusion".</li><br /><li>Sun will take MySQL and the masses will rejoice as it becomes an even better alternative to the "Big 3": Oracle, SQL Server, and DB2.</li><br /><li>Clustering and cloud computing will become more mainstream as hardware gets smaller and smaller (like the MacBook AIR).</li><br /><li>Google will further develop in the Java space their GWT and it wll become more widely accepted.</li><br /><li>Someone will come out with a phone based on Google's Android platform that will give the iPhone a run for its money.</li><br /></ol><br /><br /><br /><br /><!-- AddThis Bookmark Button BEGIN --><br /><a href="http://www.addthis.com/bookmark.php" onclick="addthis_url = location.href; addthis_title = document.title; return addthis_click(this);" target="_blank"><img src="http://s9.addthis.com/button1-bm.gif" width="125" height="16" border="0" alt="AddThis Social Bookmark Button" /></a> <script type="text/javascript">var addthis_pub = 'jldavis007';</script><script type="text/javascript" src="http://s9.addthis.com/js/widget.php?v=10"></script> <br /><!-- AddThis Bookmark Button END --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-6259623133110867594?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-48361086064687242322007-10-16T22:56:00.000-04:002007-10-16T19:56:20.250-04:00PureQuery at IBM IOD 2007!<script type="text/javascript"><br />digg_url = 'WEBSITE_URL';<br />digg_bgcolor = '#ff9900';<br />digg_skin = 'compact';<br /></script><br /><script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>Straight from IBM IOD 2007, we get the official word that JLINQ is rebranded as pureQuery, complete with lots of printed material that say both and many speakers mentioning the rebranding. I wonder how much that cost? Anyway, I'm really glad it was rebranded, but the tool itself is slated to become much more that we had at the initial posting. The automatic generation of the entire persistence structure for strongly typed O/R is really nice, but pales in comparison to the way that SQL strings are now treated in the Eclipse IDE: First Class Citizens!<br /><br />SQL is checked for completeness, and you get the nifty pop-ups to help auto-complete your query. We were given the roadmap and although pureQuery only supports DB2 (z/OS, iSeries, and LUW) and Informix at the moment, it is supposed to be expanded to other databases in the future much like Rational Data Architect. At the moment, no SQLServer though for those of you who've asked. Bummer, I know.<br /><br />I got a CD with this and IBM's new Data Studio (blog to come later) and pureQuery will likely be wrapped up in the Data Studio in the future for a complete tooling offering from IBM. Oh, pureQuery is currently part of DB2 v9.5 (Express version too) and you can download that from IBM's website.<br /><br />More from IOD 2007 later!<br /><br /><a href="http://technorati.com/tag/IBM" rel="tag" class="techtag">IBM</a> <a href="http://technorati.com/tag/IOD" rel="tag" class="techtag">IOD</a> <a href="http://technorati.com/tag/2007" rel="tag" class="techtag">2007</a> <a href="http://technorati.com/tag/pureQuery" rel="tag" class="techtag">pureQuery</a> <a href="http://technorati.com/tag/Data" rel="tag" class="techtag">Data</a> <a href="http://technorati.com/tag/Studio" rel="tag" class="techtag">Studio</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-4836108606468724232?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-74136244975462481232007-10-08T16:37:00.000-04:002007-10-08T16:49:56.510-04:00JLINQ renamed to PureQuery.....looks like it!<script type="text/javascript"><br />digg_url = 'WEBSITE_URL';<br />digg_bgcolor = '#ff9900';<br />digg_skin = 'compact';<br /></script><br /><script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>So several people in the blogosphere were not completely satisfied with IBM's new tool that was called JLINQ especially because it wasn't really LINQ at all. I was planning on going back and taking another look at it, but before I had the chance, I was awakened to another new tool coming out with DB2 v9.5 called PureQuery. After taking a quick look I noticed several similarities to JLINQ and decided to investigate further......<br /><br />One Quick Google search on "JLINQ" found that it returned the ever-so-popular article that was recently discussed on the naming of the tool. However, now when you follow this link it takes you to a page on IBM's new tool called "PureQuery" - with no references to JLINQ at all. Looks like it has been rebranded to me, and I for one am very glad for the change.<br /><br /><a href="http://technorati.com/tag/JLINQ" rel="tag" class="techtag">JLINQ</a> <a href="http://technorati.com/tag/Java" rel="tag" class="techtag">Java</a> <a href="http://technorati.com/tag/PureQuery" rel="tag" class="techtag">PureQuery</a> <a href="http://technorati.com/tag/JDBC" rel="tag" class="techtag">JDBC</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-7413624497546248123?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com1tag:blogger.com,1999:blog-7981152213104773353.post-45500344143261242762007-09-28T11:23:00.001-04:002007-09-28T11:33:02.776-04:00Upcoming Design Previews...aka Shameless Self PromotionOk, we have some upcoming Design Previews and Architect Tutorials where we sit down with our customers and talk about the latest and greatest technologies in the data access arena. Think ODBC, JDBC, ADO.NET, SOA, Oracle, SQLServer, DB2, the entire gambit of data access (it's really fun). If you're interested in attending, just follow the links and you can sign up.<br /><br />I'd be remiss to say that I'll be speaking at the design preview in Boston and so this should be filed under "Shameless self Promotion". The verbiage from the flyer we sent out for the Design Preview can be found below:<br /><br /><table border="0" width="100%"> <tbody> <tr> <td rowspan="3" valign="top" width="426"> <p class="headline">Learn more about DataDirect's current product offerings and upcoming product enhancements at Design Previews. Designed to educate you about the future direction for DataDirect products, Design Previews are delivered via an open forum format so that your feedback can be factored into DataDirect's product plan. </p> <p><span class="style2">DATES AND LOCATIONS</span></p> <table border="0" width="100%"> <tbody> <tr> <td valign="center"> <p>Tuesday, October 9th | Boston, MA - <a title="http://www.starwoodhotels.com/westin/property/overview/index.html?propertyID=1036&PS=PS_aa_YahooPanama_the_westin_waltham_012607_NAD_FM&elq=893562E5B68A41E69F72917388A3DF3C" href="http://www.starwoodhotels.com/westin/property/overview/index.html?propertyID=1036&PS=PS_aa_YahooPanama_the_westin_waltham_012607_NAD_FM&elq=893562E5B68A41E69F72917388A3DF3C">Westin Waltham</a><br />Wednesday, October 17th | Palo Alto, CA - <a title="http://www.fourseasons.com/siliconvalley/?elq=893562E5B68A41E69F72917388A3DF3C" href="http://www.fourseasons.com/siliconvalley/?elq=893562E5B68A41E69F72917388A3DF3C">Four Seasons - Silicon Valley </a><br /></p></td></tr></tbody></table></td> <td height="20" width="131"> <div align="center"><em>brought to you by </em></div></td></tr> <tr> <td height="57" width="131"><a title="http://www.datadirect.com/?elq=893562E5B68A41E69F72917388A3DF3C" href="http://www.datadirect.com/?elq=893562E5B68A41E69F72917388A3DF3C" target="_blank"><img title="http://www.datadirect.com/?elq=893562E5B68A41E69F72917388A3DF3C" src="http://img.en25.com/eloquaimages/clients/DataDirect/%7B361a19a7-0590-4cfc-9eef-569b7e6a2fd0%7D_DD_logo_at.jpg" border="0" height="55" width="130" /></a></td></tr> <tr> <td width="131"><br /></td></tr></tbody></table> <p><span class="style2">SPEAKERS INCLUDE: </span></p> <ul><li><strong><a title="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" href="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" target="_blank">John Goodson</a></strong> — VP, Product Operations, DataDirect<br /></li><li><strong><a title="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" href="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" target="_blank">Jonathan Bruce</a></strong> — Program Manager, DataDirect<br /></li><li><strong><a title="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" href="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" target="_blank">Carlo Innocenti</a></strong> — Architect, XML Technologies, DataDirect<br /></li><li><strong><a title="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" href="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" target="_blank">Gregg Willhoit</a></strong> — Chief Software Architect, DataDirect<br /></li><li><strong><a title="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" href="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" target="_blank">Mike Johnson</a></strong> — Software Development Manager, DataDirect<br /></li><li><strong><a title="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" href="http://www.datadirect.com/developer/design_preview/bios/index.ssp?elq=893562E5B68A41E69F72917388A3DF3C" target="_blank">Jesse Davis</a></strong> — Program Manager, DataDirect (That's Me!)<br /></li></ul> <p class="headline">Don't miss out - register today for this free educational seminar!</p> <p align="center"><a title="http://www.godatadirect.com/forms/DDDPS?elq=893562E5B68A41E69F72917388A3DF3C" href="http://www.godatadirect.com/forms/DDDPS?elq=893562E5B68A41E69F72917388A3DF3C"><img title="http://www.godatadirect.com/forms/DDDPS?elq=893562E5B68A41E69F72917388A3DF3C" alt="Register Now" src="http://img.en25.com/eloquaimages/clients/DataDirect/%7Bbc25cac9-6041-4830-a589-f1ec535974f3%7D_reg.gif" border="0" height="55" width="128" /></a></p><br />Here is the letter for the Architect Tutorials:<br /><br /><table border="0" width="100%"> <tbody> <tr> <td rowspan="5" valign="top" width="426"> <p class="headline">New development platforms and emerging architectural standards are changing the way we view data - causing us to challenge long held views on data access technologies and demanding the use of new XML and service-oriented capabilities. Things are not as they used to be, and the landscape continues to evolve. Making informed choices facilitates rapid development and deployment and enhances application capability, scalability, and performance.</p> <p>In this half day seminar, software architects will learn the state of the art in data access, mainframe integration, and XML query technology. We will provide the insight to navigate the complexities of data access technologies and the practical know-how to enhance application performance, flexibility and capability right away. </p> <p><span class="style2">DATES AND LOCATIONS</span></p> <table border="0" width="100%"> <tbody> <tr> <td valign="center"> <p>Thursday, October 4th | St. Louis, MO - <a title="http://www1.hilton.com/en_US/hi/hotel/STLFHHF-Hilton-St-Louis-Frontenac-Missouri/index.do?elq=D84F15324816467BB1EB9A83927D52CE" href="http://www1.hilton.com/en_US/hi/hotel/STLFHHF-Hilton-St-Louis-Frontenac-Missouri/index.do?elq=D84F15324816467BB1EB9A83927D52CE">Hilton Frontenac</a><br />Thursday, October 11th | Toronto, ON - <a title="http://www.starwoodhotels.com/westin/property/overview/index.html?propertyID=1084&elq=D84F15324816467BB1EB9A83927D52CE" href="http://www.starwoodhotels.com/westin/property/overview/index.html?propertyID=1084&elq=D84F15324816467BB1EB9A83927D52CE">Westin Harbour Castle </a><br />Tuesday, October 16th | Irvine, CA - <a title="http://irvine.hyatt.com/hyatt/hotels/index.jsp?elq=D84F15324816467BB1EB9A83927D52CE" href="http://irvine.hyatt.com/hyatt/hotels/index.jsp?elq=D84F15324816467BB1EB9A83927D52CE">Hyatt Regency</a><br /></p></td></tr></tbody></table></td> <td height="20" width="131"> <div align="center"><em>brought to you by </em></div></td></tr> <tr> <td height="57" width="131"><a title="http://www.datadirect.com/index.ssp?elq=D84F15324816467BB1EB9A83927D52CE" href="http://www.datadirect.com/index.ssp?elq=D84F15324816467BB1EB9A83927D52CE"><img title="http://www.datadirect.com/index.ssp?elq=D84F15324816467BB1EB9A83927D52CE" src="http://img.en25.com/eloquaimages/clients/DataDirect/%7B361a19a7-0590-4cfc-9eef-569b7e6a2fd0%7D_DD_logo_at.jpg" border="0" height="55" width="130" /></a></td></tr> <tr> <td height="20" width="131"> <div align="center"><em>co-sponsored by </em></div></td></tr> <tr> <td width="131"> <div align="center"><a title="http://www.zapthink.com/?elq=D84F15324816467BB1EB9A83927D52CE" href="http://www.zapthink.com/?elq=D84F15324816467BB1EB9A83927D52CE" target="_blank"><img title="http://www.zapthink.com/?elq=D84F15324816467BB1EB9A83927D52CE" src="http://img.en25.com/eloquaimages/clients/DataDirect/%7B6511ad3b-b7f2-4c6f-a496-f0110b2a34e4%7D_zapthink.gif" border="0" height="123" width="108" /></a></div></td></tr> <tr> <td valign="top" width="131"> <div align="center"><a title="http://www.zapthink.com/lza.html?elq=D84F15324816467BB1EB9A83927D52CE" href="http://www.zapthink.com/lza.html?elq=D84F15324816467BB1EB9A83927D52CE" target="_blank">Learn more about LZA Boot Camp </a></div></td></tr></tbody></table> <p><span class="style2">SPEAKERS INCLUDE: </span></p> <ul><li><strong><a title="http://www.datadirect.com/ats/bios/index.ssp#speakers" href="http://www.datadirect.com/ats/bios/index.ssp#speakers" target="_blank">Robert Evelyn</a></strong> — VP, Strategy and General Manager, DataDirect<br /></li><li><strong><a title="http://www.datadirect.com/ats/bios/index.ssp#speakers" href="http://www.datadirect.com/ats/bios/index.ssp#speakers" target="_blank">Rob Steward </a></strong>— VP, Research and Development, DataDirect<br /></li><li><strong><a title="http://www.datadirect.com/ats/bios/index.ssp#speakers" href="http://www.datadirect.com/ats/bios/index.ssp#speakers" target="_blank">Jonathan Bruce</a></strong> — Program Manager, DataDirect<br /></li><li><strong><a title="http://www.datadirect.com/ats/bios/index.ssp#speakers" href="http://www.datadirect.com/ats/bios/index.ssp#speakers" target="_blank">David Linthicum</a></strong> — Managing Partner, ZapThink<br /></li></ul> <p class="headline"><strong>Register today for this free educational seminar!</strong></p> <p align="center"><a title="http://www.godatadirect.com/forms/DDATS?elq=D84F15324816467BB1EB9A83927D52CE" href="http://www.godatadirect.com/forms/DDATS?elq=D84F15324816467BB1EB9A83927D52CE"><img title="http://www.godatadirect.com/forms/DDATS?elq=D84F15324816467BB1EB9A83927D52CE" alt="Register Now" src="http://img.en25.com/eloquaimages/clients/DataDirect/%7Bbc25cac9-6041-4830-a589-f1ec535974f3%7D_reg.gif" border="0" height="55" width="128" /></a></p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-4550034414326124276?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-15742787675126992642007-09-14T20:45:00.003-04:002007-09-28T11:14:24.489-04:00New MySQL JDBC DriverOk, due to popular demand we have a new MySQL JDBC driver offering in our new service pack for 3.7 we released yesterday.<br /><br />I'm not in marketing (and I don't want to sound like I am), but from a technical perspective it is really cool. Go download it and play with it.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-1574278767512699264?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-15208398543916751312007-09-14T19:50:00.003-04:002007-09-28T11:19:01.095-04:00Data Access in Eclipse: QuantumDBI've been playing around with JLINQ some more (post on that next week I hope) and in the midst I was referred to a really nice opensource Eclipse plugin, QuantumDB.<br /><br />I installed it and have to say that those guys really know what they're doing. I plugged in our JDBC drivers and was off and running queries, inspecting results, the whole nine yards. I haven't found any real problems with it yet, but wanted to keep track of when I found a really neat tool to help me with DB programming. Just being able to do this is really neat, although it doesn't give you the realtime feedback during programming like JLINQ does.<br /><br />Anyway, for a tool that allows you to have open DB connections in the programming environment is a real time saver.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-1520839854391675131?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-75781108633304711852007-09-14T19:22:00.000-04:002007-09-14T20:09:05.918-04:00Just Say No to Proprietary APIs!!If you're thinking of implementing a proprietary API to expose the data in your application, think twice before you start! It can be a costly and cumbersome, and an API SDK can help save time and leave you with standards based connectivity to boot. It just so happens that our senior director of Development for OpenAccess here at DataDirect Technologies has just published an article at DMReview that can help you out. Head on over and read it through.<br /><br /><a href="http://www.dmreview.com/article_sub.cfm?articleID=1088618">http://www.dmreview.com/article_sub.cfm?articleID=1088618</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-7578110863330471185?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-9786082198002593462007-08-24T09:10:00.001-04:002007-08-30T13:46:40.816-04:00JLINQ really isn't<script type="text/javascript"><br />digg_url = 'WEBSITE_URL';<br />digg_bgcolor = '#ff9900';<br />digg_skin = 'compact';<br /></script><br /><script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>I was going to reserve comment on IBM's recent article on JLINQ but I really can't help myself. Here's a link to the article:<br /><br /><a href="http://www.ibm.com/developerworks/db2/library/techarticle/dm-0708ahadian/index.html?ca=drs">http://www.ibm.com/developerworks/db2/library/techarticle/dm-0708ahadian/index.html?ca=drs</a><br /><br />LINQ stands for <u>L</u>anguage <u>IN</u>tegrated <u>Q</u>uery, which this clearly is not. I don't know if Microsoft has any rights to the name LINQ or not, but I think it very poor form of IBM to actually use the term for something that is not technically correct. LINQ is something that is actually integrated into the programming language itself, like Microsoft is integrating it into C# for instance. Then, you can actually do your queries in C# instead of SQL (examples <a href="http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx">here</a>). <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=335603"></a><br /><br />JLINQ is nothing of the sort. This is merely a new ORM style code generator for Eclipse that IBM has made. It's certainly an interesting idea on ORM to me, but that's all it is. In a nutshell, you install the JLINQ package and tell your application what JDBC driver to use. Then, it connects to the database and your Eclipse project suddenly becomes "Database Aware". Neato, this is a cool idea. By being database aware, you can then have better SQL validation as you write the queries (or optionally generate them) as you code. Example: if you type "selct" the SQL validator will ask to change it to "select" (I've got some friends who can't type and really need this!). Also, since you're connected to the DB, you can get instant validation of columns and metadata as you go, which is also helpful. Once you define what you want in terms of a query (or object definition for the ORM stuff) you can right click and have choices to generate a SQL Bean or JLINQ code. Furthermore, you can simply right-click on a table in the Database Explorer and choose "Generate JLINQ Code" and you'll automagically get a CRUD interface for your table. Certainly seems like this will save some time.<br /><br />All things considered, this seems like it is a neat idea in that it combines a nice database aware project with content assist and automagic code generation of CRUD objects and/or beans.......but by no stretch of the imagination is it LINQ. I will certainly be playing around with it in the upcoming weeks; however, I'll be using our <a href="http://www.datadirect.com/products/jdbc/index.ssp">DataDirect Connect for JDBC</a> drivers to do the work and so I'll let you all know how it goes.<br /><br />-J<br /><br />Oh, some posters on channel9 at Microsoft certainly have strong opinions if you're interested: <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=335603">http://channel9.msdn.com/ShowPost.aspx?PostID=335603</a><br /><br /><a href="http://technorati.com/tag/JLINQ" rel="tag" class="techtag">JLINQ</a> <a href="http://technorati.com/tag/Java" rel="tag" class="techtag">Java</a> <a href="http://technorati.com/tag/ORM" rel="tag" class="techtag">ORM</a> <a href="http://technorati.com/tag/Code" rel="tag" class="techtag">Code</a> <a href="http://technorati.com/tag/Generation" rel="tag" class="techtag">Generation</a> <a href="http://technorati.com/tag/Eclipse" rel="tag" class="techtag">Eclipse</a> <a href="http://technorati.com/tag/Database" rel="tag" class="techtag">Database</a> <a href="http://technorati.com/tag/Explorer" rel="tag" class="techtag">Explorer</a> <a href="http://technorati.com/tag/DataDirect" rel="tag" class="techtag">DataDirect</a> <a href="http://technorati.com/tag/JDBC" rel="tag" class="techtag">JDBC</a> <a href="http://technorati.com/tag/LINQ" rel="tag" class="techtag">LINQ</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-978608219800259346?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com2tag:blogger.com,1999:blog-7981152213104773353.post-7617204602407057352007-08-23T20:30:00.000-04:002007-08-23T21:07:40.819-04:00The Desktop Revived?<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script><br /><br />I've just finished a really good article in Dr. Dobb's Journal entitled, "The Return of the Desktop". The basic premise of the article is that for several years applications have become more and more web-centric and now it's time to break free of the browser and return to the desktop. I couldn't agree more.<br /><br />Several months ago I was browsing Adobe's lab site, labs.adobe.com, when I came across a really neat technology called Apollo (It's since been renamed AIR - Adobe Integrated Runtime). I played with some of the demo applications and they were simply breathtaking! However, what really caught my eye was what eBay was doing with it. They had written an Apollo application that you could place on your desktop and run outside the browser, making it appear as a normal desktop application. Just Cool.<br /><br />I'm really digging the new technologies popping up in this area. Things are just getting started so it will be interesting to see where we end up with all these new models popping up. I for one will continue to read, investigate, and try to keep up with all the new technology and terminology - bringing my personal views of it to you here on my blog. I'm especially interested in where data access is going in this area. The bottom line is that whatever you do eventually deals with data, which is one of the reasons I work at the company thats the leader of data access.<br /><br />It's going to be a fun ride....<br /><br /><a href="http://technorati.com/tag/Adobe" rel="tag" class="techtag">Adobe</a> <a href="http://technorati.com/tag/AIR" rel="tag" class="techtag">AIR</a> <a href="http://technorati.com/tag/Integrated" rel="tag" class="techtag">Integrated</a> <a href="http://technorati.com/tag/Runtime" rel="tag" class="techtag">Runtime</a> <a href="http://technorati.com/tag/database" rel="tag" class="techtag">database</a> <a href="http://technorati.com/tag/desktop" rel="tag" class="techtag">desktop</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-761720460240705735?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0tag:blogger.com,1999:blog-7981152213104773353.post-18632637051282369432007-07-27T09:03:00.000-04:002007-07-27T14:31:12.804-04:00JDBC "How to" series part 1: How to use WLM with the DataDirect Connect for JDBC DB2 driver<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script><br />Welcome to the new DataDirect JDBC Blog! This is my first post; however, rather than spending the first post exchanging pleasantries I would instead like to dive right into something with some real substance: a “How to” series highlighting answers to some of the questions I encounter on a regular basis. In Part 1, I will answer the question: “How do I use WLM on zOS with our DataDirect Connect for JDBC DB2 driver?” <p></p><p>WLM is the Work Load Manager for zOS. The purpose of WLM is to allow a user to specify performance goals and assign business importance to each goal. For instance, if you want to ensure that 70% of the transactions using the Connect for JDBC driver complete within 1 second, you would use WLM to configure a rule to do so. WLM keeps track of the work running on the system and configures system resources to try and meet these goals in the most efficient manner possible.</p><p>In order to create such a rule for the DataDirect Connect for JDBC DB2 drivers, you must set the subsystem type to DDF. You can then use any of the following 5 qualifier types to custom tailor your rule:<br /><style type="text/css">.nobrtable br { display: none }</style><br /></p><div class="nobrtable"><br /><table border="1"><br /><tbody><tr><br /><td width="210"><strong>Qualifier Type</strong></td><br /><td width="500"><strong>Value for the Connect for JDBC DB2 Driver</strong></td><br /></tr><br /><tr><br /><td>PK (package name)</td><br /><td>All JDBC driver packages start with DDJ<br /></td><br /></tr><br /><tr><br /><td>CI (correlation info)</td><br /><td>JDBC4DB2<br /></td><br /></tr><br /><tr><br /><td>CN (collection name)</td><br /><td>default is NULLID, this is configurable via the <a href="http://media.datadirect.com/download/docs/jdbc/alljdbc/reference/jdbcdb25.html#wp969586">packageCollection </a>connect option</td><br /></tr><br /><tr><br /><td>UI (user id)</td><br /><td>The userid specified in the URL or DataSource</td><br /></tr><br /><tr><br /><td>PN (plan name)</td><br /><td>We use the default plan, usually DISTSERV</td><br /></tr><br /></tbody></table></div><br /><p>Armed with this knowledge, you can use WLM to create performance goals on zOS for the Connect for JDBC DB2 driver today. I would like to give many thanks to Gregg Willhoit, Chief Software Architect for our Shadow products, for expanding my zOS and WLM education as well as providing insight and guidance to this post.<br /><br />Tech Tags: <a href="http://technorati.com/tag/WLM" rel="tag" class="techtag">WLM</a> <a href="http://technorati.com/tag/JDBC" rel="tag" class="techtag">JDBC</a> <a href="http://technorati.com/tag/DB2" rel="tag" class="techtag">DB2</a> <a href="http://technorati.com/tag/correlation+information" rel="tag" class="techtag">correlation+information</a> <a href="http://technorati.com/tag/plan+name" rel="tag" class="techtag">plan+name</a> <a href="http://technorati.com/tag/user+id" rel="tag" class="techtag">user+id</a> <a href="http://technorati.com/tag/collection+name" rel="tag" class="techtag">collection+name</a> <a href="http://technorati.com/tag/packagecollection" rel="tag" class="techtag">packagecollection</a> <a href="http://technorati.com/tag/work+load+manager" rel="tag" class="techtag">work+load+manager</a> <a href="http://technorati.com/tag/mainframe" rel="tag" class="techtag">mainframe</a> <a href="http://technorati.com/tag/zOS" rel="tag" class="techtag">zOS</a> <a href="http://technorati.com/tag/performance" rel="tag" class="techtag">performance</a> </p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7981152213104773353-1863263705128236943?l=jdbcem.blogspot.com'/></div>Jesse Davishttp://www.blogger.com/profile/05073659932930054288noreply@blogger.com0