text:
the line: Aych (pronounced "H") Designs is a funky jewelry line that is designed and handcrafted by the founder Heidi Woerner. This jewelry line specializes in unique and original designs. No piece is alike.
Aych Designs pulls inspiration from the world around us. There are so many vibrant and colorful aspects that we either completely miss or choose not to acknowledge. Heidi creates each piece to bring color and texture to the forefront. Her wish is to bring the things we may miss to something that we are forced to notice and pay attention to.
The heart of Aych Designs is to bring joy to the people who adorn the jewelry. Jewelry is a form of personal expression and there is nothing more important than being proud of who you are and celebrating your uniqueness!
the designer: Heidi grew up in a house where creativity was celebrated and encouraged. Both Heidi and her sister could and can always be found making or crafting something! Following the path that was naturally placed before her, Heidi attended Stonehill College and graduated with a degree in Studio Arts.
She has always had a passion for creating and working with her hands and from an early age she was crafting all sorts of items to wear or for decor. Heidi brings fresh and fun ideas to every new creation and project. When Heidi is not working or creating jewelry she can be found traveling (or dreaming of traveling), gardening, reading, enjoying a delicious meal, and spending quality time with her love and her friends.


text:
- edited
Is any method available to use a mate to control the location of a plane within a sub-assembly? This also implies the location of that plane moves relative to the origin planes within the sub assembly.
In general, I want to create a sub-assembly with a floating plane. Then mate the sub assembly. Once mated, the floating plane would move to the plane it was mated too.
Then I can have parts, sketch's etc, driven from the updated plane position.
The attached screen show should help understand the specifics. The height of our tanks are custom for each job but the sight glass assembly does not change other than the overall length.
- edited
Not easily.
These are four methods I would try. I don't know enough about your product or future modifications to pick the one that would be the most intuitive and stable.
Thanks for all the suggestions.
#1 The Adjustable part is not what I was looking for, my goal is to simplify, not add files.
#2 Creating in place is one of the things I'm trying to a avoid with the process
#3 The coordinate system thing will not work because all of the assemblies I want to use this in already exist. Again the goal is to simple add a set of parts that are driven by two planes. And everything is ordered, so I can't move the system that is already in place.
#4 is what I will end up using. Adding a single link is the smallest price to pay for what I'm trying to do.
I was really hoping some method of letting a plane float in a sub assembly was available. The floating (sub assembly) plane would then move to the top level assemblies plane when mated.
#4 will work because that can easily re-size some of the components of that sub assembly. In this case, the length of clear tube and expanded metal cage. Then I can make one assembly (sight glass) that will be copied and linked to 100's of master assembly. Each with a different overall length

subset: commoncrawl


text:
Monday 8th December 2014 : The best 4 fish from the on site stock pond were added to the main lake , These weighed 8lb8oz, 8lb10oz , 9lb6oz, and 9lb7oz. These fish should thrive in their new home and hopefully grow well in...Read More
Monday 8th December 2014 : On Sunday the 7th of December we added 43 more carp to the small lake . A mixture of mirrors and commons between 5lb and 8lb . These were all fish that were spawned on site and grown on in stock...Read More
Friday 27th June 2014 : Can all anglers please make sure they use the provided net dip on arrival . Please can you dip all landing nets, unhooking mats and weigh slings before fishing . Many thanks, Tim...Read More
Sunday 27th April 2014 : From immediate effect . All particles , other than those purchased from the shop at Rookley are now banned . This is to control the quantity and quality of any particle baits going into the...Read More
Sunday 13th April 2014 : 10 year old Oscar Smith returned to Rookley for his annual easter visit . Fishing his usual swim , outside the shop on the Small lake. He caught 20 Carp and 7 tench in the...Read More
Thursday 9th January 2014 : Keep an eye out for Rookley fishery on your t.v screens at the end of January. Fox and Mainline backed angler , Mark Pitchers has just made the long journey from his home near Middlesborough to meet...Read More
Monday 9th December 2013 : Rookley regular Darren Jaggard and his friend Shannon Mclaughlin from Oxfordshire have just managed to break both the lake records for common and mirror carp while visiting...Read More
Sunday 4th August 2013 : Saturday the 10th and Sunday the 11th of August we will be offering free angling tuition on the small lake . This is mainly aimed at beginers but all are welcome. All equipment is provided...Read More
Monday 8th July 2013 : Recently I have had more anglers than usuall turning up without the required equipment. ALL anglers MUST have a unhooking mat and landing net. I require anglers to have one of these...Read More
Wednesday 10th April 2013 : Here are the latest accomodation special offers for the next few months at Rookley ; ...Read More
Click a thumbnail to view larger image


text:
Police Commissioner Raymond Kelly says NYC is ready for a possible retaliation attack following the killing of US-born militant Anwar al-Awlaki in Yemen.
Awlaki was killed in a CIA drone attack in a remote Yemeni town Friday. According to U.S. Intelligence officials, he was identified as the "chief of external operations" for al Qaeda's Yemen branch and a web-savvy terrorist who spread propaganda for Muslim extremism.
Commissioner Kelly said in a statement, "We know al-Awlaki had followers in the United States including New York City, and for that reason we remain alert to the possibility that someone might want to avenge his death. He was a powerful recruiter of terrorists in the United States."
Kelly was also pleased to hear about the reported death of Samir Khan. Khan is an American of Pakistani origin who officials said they believed was killed in the same drone attack.
"Khan had extensive contacts in New York City and published the English-language Inspire Magazine, which instructed lone wolves on how to build bombs at home, and in the most recent issue identified Grand Central Station as a target," Kelly said.
The NYPD and intelligence services say they have disrupted at least 11 plots against the city since the 2001 attacks. Police Commissioner Kelly reiterated that report he told "60 Minutes" on Sunday, September 24.
In Washington, the US State Department issued a worldwide alert to US citizens Saturday warning them of possible retaliation for the death of American-born terror mastermind Anwar al Awlaki and the likely death of al Qaeda propagandist Samir Khan.
President Barack Obama called the death of Awlaki, which was confirmed Friday, a "major blow" to terrorist organization al Qaeda in the Arabian Peninsula (AQAP).
"The death of Awlaki, in the near term, could provide motivation for anti-American attacks worldwide from individuals or groups seeking to retaliate against US citizens or interests because of this action," the State Department warned.


text:
Creative Ways To Give Money
Here are creative ways to give money! Free printable gift tags make it super simple to gift cash and give a great money gift! Everyone loves to get cash and here are fun ways to give money! These tags are especially great for graduates and make it easy to gift cash!
Most graduates will agree you can't go wrong with money! If you prefer to just add a few bills to your card you might like these free graduation cards. Just roll up money to make a diploma and attach to the card. Gift cards are another appreciated gift. Place a gift card in this DIY Graduation Cap Card to make it extra festive.
Creative Ways To Give Money
Download and print the gift tags on cardstock…. any color you choose. They all make great money gift ideas to gift cash!
Money Gift
It is so exciting for the new grad, this new adventure they are starting. Let them know you think their future is bright with this creative money gift.
There are so many fun ways to give money and these free gift tags make it super easy! Try all these money gift ideas!
Here's to a bright Future Gift Supplies
- glass lightbulb holder (found at craft store)
- money
- printable tag
- hole punch ribbon
Place cash in lightbulb container. I left the bill slightly out of the container, even catching the edge of the lid as I screwed on the stop. This will make it easy to retrieve the money.
Rainy Day Money Gift
Everyone can use some cash for a rainy day. This could be a great money gift for anyone!
Something for a rainy day gift supplies
- umbrella
- money
- binder clips
- fishing line
- printable tag
- hole punch
- scissors
Attach fishing line to spines in the umbrella. Next tie the other end of fishing line to binder clip attached to money.
When they open the umbrella they will be showered with money.
Once all the money is attached, close the umbrella. The bills will be hanging out. Fold the bills back up around the umbrella with binder clips hanging around the bottom. Pull cover down over money. Binder clips might slightly show.
Funny Money Gift
Here are more creative ways to give money and remind someone to not blow their money all in one place.
Tape money together in a long row. Repositional tape or painters tape will do the trick without damaging the money.
Roll up the end and place inside the tissue box on top of the tissues.
We all know college students live on pizza. Here is a way to give them some useful dough!
Purchase a pizza box from your local pizza place or baking supply store and fill will money.
I hope you love these money gift ideas they are creative ways to give cash!
Leave a Comment
- Tuesday, May 15th, 2018Cool tips. I like pizza idea. When you are 're hungry, and you're given this gift. It's so great.
- Thursday, May 3rd, 2018I love the umbrella one! I'm a terrible gift giver and sometimes gift cards can seem impersonal.


text:
1 of 6
What Is Hypertufa?
The term "hypertufa" refers to a type of artificial stone and is a conglomerate of the words "tufa," a natural volcanic rock, and "hyper," a prefix meaning excessively or extremely -- hypertufa are extremely rocklike containers.
Make beautiful garden containers that will last for years with this fascinating hypertufa technique.
2 of 6
Hypertufa How-Tos
You can use basic molds, from wicker basket pots to milk-carton gardening containers, to create truly impressive hypertufa designs.
3 of 6
Faux Bois Planter Mold
Faux bois, French for "fake wood," makes for stunning garden pots and planters. Lightweight and durable, faux bois is pretty simple to make too.
4 of 6
Stump Them All
No one will guess there are goodies hiding inside this creative papier-mache faux bois tree stump container.
5 of 6
Lifelike Clay Pots
A simulated patina helps faux-clay plastic pots blend in with those made from real terra-cotta.
Swipe here for next slide
6 of 6
Shocking Idea: Electrical Box Planters
Steel utility boxes from the hardware store make sleek, modern pots.
Choose a range of shapes and sizes. Turn so that the side with holes is at the bottom, and plant with low-growing succulents, such as Echeveria 'Black Prince' (left) and Sempervivum; top with gravel. (We used no. 2 grade grit.) For an exotic centerpiece, arrange several in a tray filled with grit.


text:
#a257 :: Ruined chain links
October 28, 2008
Popped my chain before dawn this morning as I hoisted my bulk up on the pegs today and hammered up this steep little hill. This is what was left after the repair – the first two attempts at which failed because I had threaded the chain incorrectly. Both times. Furthermore, order the XBox 360 flung the Red Ring of Death at me precisely one year after we bought it – and exactly 74 minutes after Best Buy closed. Which puts me 12 hours out of warranty the next time I can possibly try getting a replacement.
Oh, ampoule and the stock market geeked out all over itself in a mad 900-point feint at recovery, order which is sure to be followed by an equally geeked-down plunge as everyone realizes amid the many layoffs.
Not to mention the endless ideological and bloody wars.
Yeah, it was that kind of day. It's been that kind of decade. Make of it – er, rather, the future – what you will.
Filed under: Jetsam, Part | Comments (0)


text:
As David Cameron announces the draft EU deal he hopes will secure a vote to stay within the European Union when the referendum is held later this year, there are a whole raft of unanswered questions about what Britain would look like if the vote went the other way and the country decided to leave.
David Cameron announced draft deal for EU reform. Photo AP
Which kind of relationship would Britain have with the EU if it decided to go it alone? Eurosceptics hail the Norwegian model of trading with Europe but staying outside it however the Norwegians have only managed to secure their free trade deal by accepting freedom of movement as a condition, something the out campaign would find hard to agree to.
If Britain votes to leave, how will the EU react? As the EU's largest single export market it may be in their interest to secure a quick trade deal but they may also decide to make an example of Britain to discourage other member states from leaving.
Nicola Sturgeon predicts public demand for independence referendum 'unstoppable' in case of Brexit. Photo PA
It seems likely that Scottish voters will vote to stay in the EU and so an overall out vote may trigger a second referendum potentially breaking the Union and leaving what remains of the UK even smaller in its negotiations with the rest of the world.
It is these unanswered questions that are likely to confuse and worry voters in the run-up to the referendum and it will be up to the in and out campaigns to try to take advantage of that.


text:
wtorek, 26 czerwca 2012
New KIT " Happy Days" - Free
24 komentarze:
wonderful kit ))))) thank you very much !!!OdpowiedzUsuń
Thank you so much for this great kit. You might want to check the zip file for elements part2 - something is wrong with it and it can not be unzipped.
Hi Trine Secher -part 2 I have just downloaded, unpacked without a problem, the link is ok :)OdpowiedzUsuń
Aniu serdecznie dziekuje za wspanialy zestawik.
Widac ,ze sie napracowalas ale bylo warto!!! buzka :)
Hmmm - I don't understand what is going on. I just re-downloaded and again it would not unpack. It shows the correct size (53 MB) but when I try to unzip, it tells me the file is empty...????OdpowiedzUsuń
Well, I just have to live without. The rest is wonderful!
Hi, it's me again.OdpowiedzUsuń
Sorry to bother you, but I just wanted to let you know that I succeeded (yeahh!). I simply changed the file name and - voila - it unzipped. Sometimes my "unpack software" does not like "." in the file name. And it was WAY worth the work!
Thank You so much for everything.Odpowiedzi
Trine Seacher I have no idea what was going on with you but I checked the links and in me Maybe it's all about hosting a wine just really do not know. For my part, and set all the links are OKUsuń
Aniu dziękuję za kolejny piekny zestawik .OdpowiedzUsuń
Pozdrawiam :)
Aniu, bardzo dziękuję. :)))OdpowiedzUsuń
very nice free, thanksOdpowiedzUsuń
This is very beautiful! Dziękuję bardzo!OdpowiedzUsuń
This is gorgeous! Thank you so much!OdpowiedzUsuń
So gorgeous kit, as always Anna Jolanta !OdpowiedzUsuń
thank you so much for sharing !
Danke schön for the fabulous kit. The only thing is that I could not download the WA.rar. Schade!OdpowiedzUsuń
Lirios - Niederlande
I've got the wordart at last. Thank you.OdpowiedzUsuń
Lirios - Netherlands
Thank you so much for all of your wonderful freebies. I found your site today and love it!!!!!!!!!!!!!OdpowiedzUsuń
Thank you so much for the beautiful kit!OdpowiedzUsuń
Merci beaucoup.OdpowiedzUsuń
I just discovered your website, and I wanted to tell you how impressed I am with your work. I have seen kits for sale at ridiculous prices which are not made with as much creativity, skill and talent as your kits. I especially love your flowers and clusters. You are so talented! You can be sure I will be keeping and eye on your work. I can't wait to collect some of your older work provided on this blog. You really are amazing!OdpowiedzUsuń
Hello, I also just discovered your site.I agree with Donna,above me.You do amazing work! You know you can get paid for this? LOL Thank you so much for sharing your lovely work! Very generous of you.OdpowiedzUsuń
Milles merci pour ces beaux Scrap kitOdpowiedzUsuń
Vraiment splendides
Et superbe musique sur ta page....j'adoooore
Thank you very much.OdpowiedzUsuń
Lovely work and so very generous of you to share it! Thanks so much!OdpowiedzUsuń
This is extraordinary, thank you very much!OdpowiedzUsuń
So beautiful!! Thank you!!OdpowiedzUsuń


text:
ALPINE EX - In compliance with European Union (EU) legislation for visitors from the EU, Schlumberger requests your permission to place cookies on your computer to both improve your experience and to help us improve our website. To find more about these cookies, see the Schlumberger General Website.
Privacy Statement
Challenge: After cleaning cement to 9,090 ft (2771 m) within 22 ft (7 m) before the casing shoe, the operator began the 9 5/8-in casing leak off test (LOT) prior to beginning the horizontal section of the Corocoro field development well. The LOT failed as a total of 3000 psi of pressure was applied and could not be maintained. After drilling out the casing shoe and drilling 20 ft. (6 m) of rat hole to 9126 ft (2782 m), the operator discovered little or no cement around the casing shoe. Afterwards, the well was drilled to 9132 ft (2783 m) where a viscous pill was pumped and the returns to surface were observed as containing 50% cement, 30% clay and 20% sand. At this point, the bit was pulled up to 9128 ft (2782 m). The operator attempted to strengthen the formation and provide integrity to the casing shoe by pumping a pill consisting of SAFE CARB 20/40/250 formulation. After the operation proved unsuccessful, the operator decided to pump three cement slugs up to 50 ft (15 m) inside the casing. The second LOT also failed to hold pressure and bled off to 164 psi at 9132 ft (2783 m).
Solution: M-I SWACO proposed a sealing pill using a 10 lb/gal (1.2 sg) FORM-A-SQUEEZE high-fluid loss/high-solids slurry. The concentration of the recommended 45-bbl pill would include 75 lb/bbl FORM-A-SQUEEZE and 33 lb/bbl each of SAFE CARB 20, SAFE CARB 40 and SAFE CARB 250. Pumping of the plug would precede a pressurized cement treatment at the casing shoe.
Result: M-I SWACO pumped the FORM-A-SQUEEZE pill as per the operator's specific request. The plug completely sealed the leaking casing shoe fracture with sufficient integrity to allow drilling to resume as programmed. No further cement squeezes were required. The operator expressed satisfaction and certified the job as a complete success. The project reinforced the high performance characteristics of a FORM-A-SQUEEZE pill when formulated and applied to the client's specific requirements.
Once the FORM-A-SQUEEZE pill was mixed in the rig tanks, it was pumped and displaced with sea water. Once the column reached 9132 ft (2783 m) the pumping pressure stood at 320 psi at which point the pumps were stopped for 20 min. The bit was pulled up to 8396 ft (2559 m) where the annular was closed and the squeeze process began. The pressure increased to 147 psi, reaching up to 943 psi before the pump was stopped and the shut-in pressure observed for 20 min. Pressure fell to 532 psi, prompting the operator to again close the annular and proceed to squeeze.
When the pressure reached 1300 psi, behavior was observed for two hours. At the end of the observation period, the well exhibited 302 psi pressure and pumping continued until pressure increased to 1315 psi. Again, pumping was discontinued and the pressure observed for one hour, whereupon pressure had fallen to 522 psi before increasing and stabilizing at 793 psi.
The total pumped volume at the beginning of the test was 14.5 bbl, at which point the annular was open, flowing back a total of 2.5 bbl. The drill string was tripped in the hole to 9132 ft (2783 m) and circulated bottoms up with 50-bbl 10 lb/gal (1.2 sg) FLOPRO NT. Afterwards, the operator pulled up the bit to 9060 ft (2761 m) and performed a new LOT with the annular closed. A total of 3.25 bbl was pumped until the pressure reached 1086 psi and observed for 10 min. When the pressure reached 1024 psi, it was released and 3 bbl was returned to the active system. Using a maximum pumping rate, the FLOPRO NT successfully displaced the seawater from the hole at a displacement pressure of 1200 psi. After a flow check revealed no problems, the cleaning BHA was replaced with a directional assembly and drilling operations continued as programmed.
Download: FORM-A-SQUEEZE Seals Problematic Shoe, Allows Resumption of Drilling (0.45 MB PDF)


text:
Table of Contents
General Notes
Supported Firebird versions
Supported Java versions
Specification support
What's new in Jaybird 2.2
Changes and fixes in Jaybird 2.2.8
Changes and fixes in Jaybird 2.2.7
Changes and fixes in Jaybird 2.2.6
Changes and fixes in Jaybird 2.2.5
Changes and fixes in Jaybird 2.2.4
Changes and fixes in Jaybird 2.2.3
Changes and fixes in Jaybird 2.2.2
Changes and fixes in Jaybird 2.2.1
Changes and fixes since Jaybird 2.2.0 beta 1
Support for getGeneratedKeys()
Java 6 and JDBC 4.0 API support
Java 7 and JDBC 4.1 API support
Java 8 and JDBC 4.2 API support
Jaybird on Maven
Native and Embedded (JNI) 64-bit Windows and Linux support
Support for Firebird 2.5
Support for Firebird 3.0
Improved support for OpenOffice / LibreOffice Base
Other fixes and changes
Compatibility changes
Java support
Firebird support
Important changes to Datasources
Future changes to Jaybird
Distribution package
Source Code
Documentation and Support
Where to get more information on Jaybird
Where to get help
Reporting Bugs
Corrections/Additions To Release Notes
JDBC URL Format
Pure Java
Using Firebird client library
Embedded Server
Using Type 2 and Embedded Server driver
Configuring Type 2 JDBC driver
Configuring Embedded Server JDBC driver
Support for multiple JNI libraries
Usage and Reference Manual
Updatable result sets
Firebird management interfaces
Jaybird JDBC extensions
JDBC connection properties
JDBC Compatibility
JDBC deviations and unimplemented features
Jaybird Specifics
Result sets
Using java.sql.ParameterMetaData with Callable Statements
Using ResultSet.getCharacterStream with BLOB fields
Heuristic transaction completion support
Compatibility with com.sun.rowset.*
Support for Firebird 3 BOOLEAN type
Connection pooling with Jaybird
Description of deprecated org.firebirdsql.pool classes
Usage scenario
Connection Pool Classes (deprecated)
org.firebirdsql.pool.FBConnectionPoolDataSource (deprecated)
Runtime object allocation and deallocation hints
Jaybird is a JCA/JDBC driver suite to connect to Firebird database servers.
This driver is based on both the JCA standard for application server connections to enterprise information systems and the well-known JDBC standard.
The JCA standard specifies an architecture in which an application server can cooperate with a driver so that the application server manages transactions, security, and resource pooling, and the driver supplies only the connection functionality. While similar to the JDBC XADataSource concept, the JCA specification is considerably clearer on the division of responsibility between the application server and driver.
Jaybird 2.2.8 was tested against Firebird 2.1.7, Firebird 2.5.4 and a recent Firebird 3 beta 1snapshot build (184.108.40.206839), but should also support other Firebird versions from 1.0 and up. The Type 2 and embedded server JDBC drivers require the appropriate JNI library. Precompiled JNI binaries for Win32 and Linux platforms are shipped in the default installation, other platforms require porting/building the JNI library for that platform.
Connecting to Firebird 3 requires some additional configuration, see Jaybird and Firebird 3.0 Beta 1 for details.
This driver does not support InterBase servers due to Firebird-specific changes in the protocol and database attachment parameters that are sent to the server.
Jaybird 2.2.8 supports Java 6 (JDBC 4.0), Java 7 (JDBC 4.1) and Java 8 (JDBC 4.2). Support for earlier Java versions has been dropped.
The upcoming Jaybird 3.0 will support Java 7 and 8 (Java 7 support might still be dropped depending on the final release date).
Driver supports the following specifications:
Driver does not fully support JDBC 4.2 features, but implements large update count methods by calling the normal update count methods, and methods with SQLType by calling methods accepting the java.sql.Types integer value.
Supports new java.Time classes with some caveats.
Driver implements all JDBC 4.1 methods added to existing interfaces. The driver explicitly supports closeOnCompletion, most other methods introduced with JDBC 4.1 throw SQLFeatureNotSupportedException.
Driver implements all JDBC 4.0 interfaces and supports exception chaining.
Jaybird provides implementation of javax.resource.spi.ManagedConnectionFactory and related interfaces. CCI interfaces are not supported.
Although Jaybird depends on the JCA 1.5 classes, JCA 1.5 compatibility is currently not guaranteed.
Driver provides an implementation of javax.transaction.xa.XAResource interface via JCA framework and XADataSource implementation.
Jaybird provides a MBean to manage Firebird servers and installed databases via JMX agent.
Jaybird 2.2 introduces the following new features and fixes:
The following has been changed or fix in Jaybird 2.2.8:
•Support for Java 5 has been dropped
•Fixed: LibreOffice doesn't display tables with more than 41 records (JDBC-383)
•Improvement: Don't use Firebird provided IP address for connecting event channel (JDBC-384)
•Fixed: Connection.getMetaData().getColumns result set contains wrong (empty) COLUMN_DEF if column type was defined using domain (JDBC-388)
•Fixed: Unable to retrieve update count after result set (JDBC-390)
After executing a query that produces a result set, calling getMoreResults will allow getUpdateCount to actually return the update count where previously it always returned -1. TIn the same way this also allows obtaining the update count after a select query (even when executed using executeQuery). For selects the result will usually be 0.
•Fixed: SELECT statements are processed for getGeneratedKeys by appending RETURNING (+ all columnnames) (JDBC-391)
•Fixed: Generated key grammar does not correctly handle quoted table names (JDBC-392)
•Fixed: Generated key grammar does not detect returning clause in update and delete (JDBC-393)
Known issues in Jaybird 2.2.8
The following are known in issues in Jaybird 2.2.8 (and earlier):
•ResultSets opened with CLOSE_CURSORS_AT_COMMIT aren't correctly closed on commit when auto-commit is off (JDBC-307)
•Using FBEventManager with Firebird 3, NATIVE (or EMBEDDED) protocol and a Firebird 3 fbclient/fbembed can crash the JVM with an access violation (JDBC-398)
This list is not exhaustive, see the Jaybird tracker for a full list of open bugs.
The following has been changed or fixed in Jaybird 2.2.7:
•Fixed: blob return value of executable procedure obtained through getters on CallableStatement is 8 byte blob id, instead of expected blob content (JDBC-381)
This was a regression caused by the changes of JDBC-350.
The following has been changed or fixed in Jaybird 2.2.6:
•Reverted Firebird 3 workaround for updatable result sets as bug has been fixed in Firebird (JDBC-330)
•Fixed: Processing and closing the ResultSet from callable statement and then using the getters throws NullPointerException (JDBC-350)
Using both the getters and the result set for the same callable statement is incorrect; the ability to do this might be removed in a future version of Jaybird. A ResultSet should be used for selectable procedures, while the getters should be used with executable procedures.
•Fixed: FBManagedConnectionFactory.tryCompleteInLimboTransaction doesn't work with recent Firebird 3 builds (JDBC-353)
•Fixed: Jaybird can throw a NullPointerException when a fatal connection error has occurred (JDBC-359)
•Fixed: Calling close on a JCA connection triggers exception Connection enlisted in distributed transaction (JDBC-362)
•Fixed: Potential memory-leak when using a lot of different connection strings and/or properties (JDBC-364)
•Fixed: FBRowUpdater.buildInsertStatement doesn't quote column names (JDBC-370)
•Fixed: EncodingFactory doesn't handle UnsupportedCharsetException (JDBC-371)
•Fixed: Current method of quoting in FBRowUpdater incorrect for dialect 1 (JDBC-372)
The following has been changed or fixed in Jaybird 2.2.5:
•Fixed: getCrossReference broken by changes of JDBC-331 (JDBC-335)
•Fixed: Deadlocks and other thread safety issues with classes in org.firebirdsql.pool (JDBC-341)
The following has been changed or fixed in Jaybird 2.2.4:
•Fixed: Exceptions during statement preparation leave connection and transaction open after explicit close (JDBC-311)
•Fixed batch update (or insert) with blob set through setBinaryStream() sets empty blob for all but the first batch entry (JDBC-312)
•Fixed incomplete checks of database, transaction, statement and blob handle validity before continuing with actions. These incomplete checks could lead to unexpected exceptions (for example a NullPointerException in iscDatabaseInfo) (JDBC-313)
•Fixed error when setting connection charset equal to "file.encoding" java property (JDBC-314)
•Fixed connection character set not correctly set when specifying the Java connection characterset (charSet or localEncoding property) (JDBC-315)
•Fixed incorrect lengths and/or radix reported by getTypeInfo and getColumns metadata (JDBC-317, JDBC-318)
•Initial Java 8 / JDBC 4.2 support (JDBC-319)
•Firebird 3 BOOLEAN type support, see Support for Firebird 3 BOOLEAN type (JDBC-321)
•Added fallback of loading GDSFactoryPlugin implementations to prevent NullPointerException in Hibernate reverse engineering wizard in NetBeans (JDBC-325)
•Fixed: Jaybird should specify dialect 3 in dpb when no explicit dialect was set (JDBC-327)
•Fixed: several DatabaseMetaData methods defined by JDBC to only accept the actual table name also accepted a LIKE-pattern or empty string or null. This was changed to conform to JDBC. This change can break applications that relied on the incorrect behavior (JDBC-331)
Affected methods are: getPrimaryKeys, getBestRowIdentifier, getImportedKeys, getExportedKeys and getCrossReference. As part of this change getIndexInfo now handles names in the wrong case slightly different.
Jaybird 3.0 will further modify and restrict the pattern matching and case sensitivity of metadata methods. See Future changes to Jaybird.
The following has been changed or fixed in Jaybird 2.2.3:
•Fixed incorrect synchronization in native and embedded protocol (JNI) implementation for iscBlobInfo and iscSeekBlob (JDBC-300)
WARNING: Although Jaybird strives for correct synchronization, a JDBC Connection, and its dependent objects should be used from a single Thread at a time, sharing on multiple threads concurrently is not advisable.
•Fixed holdable ResultSet is closed on auto-commit (JDBC-304, JDBC-305)
•Fixed table names missing or padded with spaces in Database view of IntelliJ IDEA (JDBC-308, IDEA-100786)
•Fixed incorrect JDBC minor version reported under Java 7; this resulted in an incorrect column name (for Java 7) in the metadata of DatabaseMetaData.getColumns(...) (JDBC-309)
•Added IOException to cause of GDSException with error 335544721; "Unable to complete network request to host "�?�? for further investigation (JDBC-306)
The following has been changed or fixed in Jaybird 2.2.2:
•Fixed: FBMaintenanceManager.listLimboTransactions() reports incorrect transaction id when the result contains multi-site transactions in limbo (JDBC-266)
•Fixed: Calling PreparedStatement.setClob(int, Clob) with a non-Firebird Clob (eg like Hibernate does) or calling PreparedStatement.setClob(int, Reader) throws FBSQLException: "You can't start before the beginning of the blob�? (JDBC-281)
•Fixed: Connection property types not properly processed from isc_dpb_types.properties (JDBC-284)
•Fixed: JNI implementation of parameter buffer writes incorrect integers (JDBC-285, JDBC-286)
•Changed: Throw SQLException when calling execute, executeQuery, executeUpdate and addBatch methods accepting a query string on a PreparedStatement or CallableStatement as required by JDBC 4.0 (JDBC-288)
NOTE: Be aware that this change can break existing code if you depended on the old, non-standard behavior! With addBatch(String) the old behavior lead to a memory leak and unexpected results.
•Fixed: LIKE escape character JDBC escape ({escape '<char>'}) doesn't work (JDBC-290)
•Added: Support for a connect timeout using connection property connectTimeout. This property can be specified in the JDBC URL or Properties object or on the DataSource. If the connectTimeout property is not specified, the general DriverManager property loginTimeout is used. The value is the timeout in seconds. (JDBC-295)
For the Java wire protocol the connect timeout will detect unreachable hosts. In the JNI implementation (native protocol) the connect timeout works as the DPB item isc_dpb_connect_timeout which only works after connecting to the server for the op_accept phase of the protocol. This means that – for the native protocol – the connect timeout will not detect unreachable hosts within the timeout. As that might be unexpected, an SQLWarning is added to the connection if the property is specified with the native protocol.
•As part of the connect timeout change, hostname handling (if the hostname is an IP-address) in the Java wire protocol was changed. This should not have an impact in recent Java versions, but on older Java versions (Java 5 up to update 5) this might result in a delay in connecting using an IP-address, if that address can't be reverse-resolved to a hostname. Workaround is to add an entry for that IP-address to the /etc/hosts or %WINDIR%\System32\Drivers\etc\hosts file.
The following has been changed or fixed in Jaybird 2.2.1:
•Fixed: UnsatisfiedLinkError in libjaybird22(_x64).so undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE on Linux (JDBC-259)
•Added connection property columnLabelForName for backwards compatible behavior of ResultSetMetaData#getColumnName(int) and compatibility with bug in com.sun.rowset.CachedRowSetImpl (JDBC-260)
Set property to true for backwards compatible behavior (getColumnName() returns the column label); don't set the property or set it to false for JDBC-compliant behavior (recommended).
•Fixed: setString(column, null) on "? IS (NOT) NULL�? condition does not set parameter to NULL (JDBC-264)
•The charSet connection property now accepts all aliases of the supported Java character sets (eg instead of only Cp1252 now windows-1252 is also accepted) (JDBC-267)
•Fixed: values of charSet property are case-sensitive (JDBC-268)
•Fixed: setting a parameter as NULL with the native protocol does not work when Firebird describes the parameter as not nullable (JDBC-271)
The following was changed or fixed after the release of Jaybird 2.2.0 beta 1:
•ConcurrentModificationException when closing connection obtained from org.firebirdsql.ds.FBConnectionPoolDataSource with statements open (JDBC-250)
•Memory leak when obtaining multiple connections for the same URL (JDBC-249)
•CPU spikes to 100% when using events and Firebird Server is stopped or unreachable (JDBC-232)
•Events do not work on Embedded (JDBC-247)
•Provide workaround for character set transliteration problems in database filenames and other connection properties (JDBC-253); see also Support for Firebird 2.5.
•FBBackupManager does not allow 16kb page size for restore (JDBC-255)
•Log warning and add warning on Connection when no explicit connection character set is specified (JDBC-257)
Support was added for the getGeneratedKeys() functionality for Statement and PreparedStatement.
There are four distinct use-cases:
1.Methods accepting an int parameter with values of Statement.NO_GENERATED_KEYS and Statement.RETURN_GENERATED_KEYS
When NO_GENERATED_KEYS is passed, the query will be executed as a normal query.
When RETURN_GENERATED_KEYS is passed, the driver will add all columns of the table in ordinal position order (as in the (JDBC) metadata of the table). It is advisable to retrieve the values from the getGeneratedKeys() resultset by column name.
We opted to include all columns as it is next to impossible to decide which columns are filled by a trigger or otherwise and only returning the primary key will be too limiting
2.Methods accepting an int[] parameter with column indexes.
The values in the int[] parameter are the ordinal positions of the columns as specified in the (JDBC) metadata of the table. For a null or empty array the statement is processed as is. Invalid ordinal positions are ignored and silently dropped (be aware: the JDBC specification is not entirely clear if this is valid behavior, so this might change in the future)
3.Methods accepting a String[] parameter with column names.
The values in the String[] are the column names to be returned. The column names provided are processed as is and are not checked for validity or the need of quoting. Providing non-existent or incorrectly (un)quoted columns will result in an exception when the statement is processed by Firebird.
This method is the fastest as it does not retrieve metadata from the server.
4.Providing a query already containing a RETURNING clause. In this case all of the previous cases are ignored and the query is executed as is. It is possible to retrieve the result set using getGeneratedKeys().
This functionality will only be available if the ANTLR 3.4 runtime classes are on the classpath. Except for calling methods with NO_GENERATED_KEYS, absence of the ANTLR runtime will throw FBDriverNotCapableException.
This functionality should work for INSERT (from Firebird 2.0), and for UPDATE, UPDATE OR INSERT and DELETE (from Firebird 2.1).
Support was added for the following JDBC 4.0 features:
•Automatic driver loading: on Java 6 and later it is no longer necessary to use Class.forName("org.firebirdsql.jdbc.FBDriver") to load the driver
•Implementation of java.sql.Wrapper interface on various JDBC classes; in general it only unwraps to the specific implementation class (and superclasses) and implemented interfaces
•Support for chained exceptions (use getNextException() and iterator() to view other, related exceptions) and getCause() to retrieve the cause (deprecating similar getInternalException())
•Support for getClientInfo() and setClientInfo() on Connection
Support was added for the following JDBC 4.1 features:
•Statement closeOnCompletion
Other methods added by JDBC 4.1 will throw FBDriverNotCapableException (a subclass of SQLFeatureNotSupportedException).
Minimal support for JDBC 4.2 was added in Jaybird 2.2.4 and extended in 2.2.5:
•Large update counts: no actual support is provided, method call is forwarded to the normal update count method returning an int.
•Methods accepting java.sql.SQLType: no actual support is provided, method call is forwarded to equivalent method accepting a java.sql.Types integer value.
•PreparedStatement.setObject() and ResultSet.updateObject() now accept java.time objects:
•Retrieval of java.time objects using getObject(int, Class<?>) and getObject(String, Class<?>) is not yet supported.
Jaybird 2.2.8 is available on maven, with a separate artifact for each supported Java version.
Groupid: org.firebirdsql.jdbc, artifactid: jaybird-jdkXX (where XX is 17 or 18).
Version: 2.2.8
When deploying to a JavaEE environment, exclude the javax.resource connector-api dependency as this will be provided by the application server.
The JNI libraries for native and embedded support now also have a 64 bit version.
Added support for Firebird 2.5 Services API enhancements:
•The security database can be set
•Support for SET/DROP AUTO ADMIN
•Mapping for new role RDB$ADMIN in security database
•Added new Firebird 2.1 shutdown/online modes available in Firebird 2.5 via the Services API
•Support for NBackup via Services API in Firebird 2.5
•Support for Trace/Audit via Services API in Firebird 2.5
Since Firebird 2.5, Firebird supports full UTF-8 database filenames and other connection properties (Database Parameter Buffer values). Jaybird does not yet support these changes, but a workaround is available:
This workaround consists of two steps
1.Ensure your Java application is executed with the system property file.encoding=UTF-8 (either because that is the default encoding for your OS, or by explicitly specifying this property on the commandline of your application using -Dfile.encoding=UTF-8)
2.Include property utf8_filename=1 in the JDBC URL or (non-standard) properties of the datasource
This will only work if the Firebird server is version 2.5 or higher.
Jaybird 2.2.x only supports Firebird 3.0 using the legacy authentication. The new authentication model and wire protocol encryption is not yet supported. Technically these new protocol options will work when using the Type 2 driver, but this hasn't been fully tested.
When using Jaybird with Firebird 3.0, make sure that
•Wire protocol encryption is not required
•Legacy authentication is enabled
•The user has been created with the legacy usermanager
The new BOOLEAN data type is supported
See the Jaybird Wiki for more details.
The interpretation of the JDBC standard by Jaybird differs from the interpretation by OpenOffice / LibreOffice. To address some of the problems caused by these differences, Jaybird now provides a separate protocol for OpenOffice / LibreOffice.
When connecting from Base, use the protocol prefix jdbc:firebirdsql:oo:. Be aware that this is a variant of the pure Java wire protocol and not the native or embedded protocol.
Issues addressed by this protocol:
•Result sets are not closed when a statements is finished (eg fully read ResultSet or when creating a new Statement in auto-commit mode)
•DatabaseMetaData#getTablePrivileges(...) reports privileges granted to PUBLIC and to the current role (as reported by CURRENT_ROLE) as being granted to the user (after Jaybird 2.2.0 beta 1).
•Replaced mini-j2ee.jar with connector-api-1.5.jar: make sure to remove the old mini-j2ee.jar from the classpath of your application.
•Dropped jaybird-pool jar from the distribution (all classes are include in the jaybird jar and the jaybird-full jar)
•FBResultSetMetaData#getcolumnName(int) will now return the original column name (if available) for compliance with the JDBC specification, getColumnLabel(int) will still return the alias (or the column name if no alias is defined). See Compatibility with com.sun.rowset.* for potential problems when using the reference implementation of CachedRowSet.
Jaybird 2.2.1 introduced the connection property columnLabelForName which will revert to the old behavior when set to true. Be aware that the old behavior is not JDBC-compliant.
•FBDatabaseMetaData has been updated to include metadata columns defined by JDBC 3.0, 4.0 and 4.1. This also changes the position of OWNER_NAME column in the result set of getTables(..) as this column is Jaybird-specific and not defined in JDBC.
•FBDatabaseMetaData#getIndexInfo(..) now also returns expression indexes. The COLUMN_NAME column will contain the expression (if available).
•FBDatabaseMetaData#getIndexInfo(..) now correctly limits the returned indexes to unique indexes when parameter unique is set to true.
•The connection property octetsAsBytes can be used to identify fields with CHARACTER SET OCTETS as being (VAR)BINARY (in ResultSetMetaData only)
•The getTime(), getDate(), getTimestamp() methods which take a Calendar object now correctly handle conversions around Daylight Savings Time (DST) changes. Before, the time was first converted to the local JVM timezone, and then to the timezone of the provided Calendar, this could lose up to an hour in time. Now the time is converted directly to the timezone of the provided Calendar. (JDBC-154)
A full list of changes is available at:
Jaybird 2.2.8: http://tracker.firebirdsql.org/secure/ReleaseNote.jspa?version=10664&styleName=Text&projectId=10002
Jaybird 2.2.7: http://tracker.firebirdsql.org/secure/ReleaseNote.jspa?version=10660&styleName=Text&projectId=10002
Jaybird 2.2.6: http://tracker.firebirdsql.org/secure/ReleaseNote.jspa?version=10588&styleName=Text&projectId=10002
Jaybird 2.2.5: http://tracker.firebirdsql.org/secure/ReleaseNote.jspa?version=10582&styleName=Text&projectId=10002
Jaybird 2.2.4: http://tracker.firebirdsql.org/secure/ReleaseNote.jspa?version=10531&styleName=Text&projectId=10002
Jaybird 2.2.3: http://tracker.firebirdsql.org/secure/ReleaseNote.jspa?version=10510&styleName=Text&projectId=10002
Jaybird 2.2.2: http://tracker.firebirdsql.org/secure/ReleaseNote.jspa?projectId=10002&styleName=Text&version=10480
Jaybird 2.2.1: http://tracker.firebirdsql.org/secure/ReleaseNote.jspa?version=10474&styleName=Text&projectId=10002
Jaybird 2.2.0: http://tracker.firebirdsql.org/secure/ReleaseNote.jspa?version=10053&styleName=Text&projectId=10002
Jaybird 2.2 introduces some changes in compatibility and announces future breaking changes. The version previously announced as Jaybird 2.3 will be released as Jaybird 3.0.
Java 6 support will be dropped for Jaybird 3.0 as Java 6 has been on End-Of-Public-Updates status since February 2013. This is a change from previous announcements that support would be dropped with Jaybird 3.1.
Java 7 support will be dropped for Jaybird 3.1 as Java 7 has been on End-Of-Public-Updates status since April 2015. Depending on the release of Jaybird 3.0, Java 7 support may already be dropped from Jaybird 3.0.
Jaybird 2.2 supports Firebird 1.0 and higher, but is only tested with Firebird 2.1, 2.5 and 3.0. With Jaybird 3.0 formal support for Firebird 1.0 and 1.5 will be dropped. In general this should not impact the use of the driver, but might have impact on the availability and use of metadata information. This also means that from Jaybird 3.0 bugs that only occur with Firebird 1.0 and 1.5 will not be fixed. With Jaybird 3.1 support for Firebird 2.0 will be dropped.
The ConnectionPoolDataSource and XADataSource implementations in org.firebirdsql.pool and org.firebirdsql.pool.sun contain several bugs with regard to pool and connection management when used by a JavaEE application server. The decision was made to write new implementations in the package org.firebirdsql.ds.
The following implementation classes have been deprecated and will be removed in Jaybird 3.0:
Their replacement classes are:
•org.firebirdsql.pool.FBSimpleDataSource (a normal DataSource)
We strongly urge you to switch to these new implementations if you are using these classes in an application server. The bugs are described in JDBC-86, JDBC-93, JDBC-131 and JDBC-144.
The deprecated classes can still be used with the DataSource implementations WrappingDataSource as the identified bugs do not occur with this implementation, but we advise you to switch to FBSimpleDataSource. If you require a standalone connection pool (outside an application server) or statement pooling, please consider using a third-party connection pool like C3P0, DBCP or HikariCP.
The new ConnectionPoolDataSource and XADataSource implementations only provide the basic functionality specified in the JDBC specifications and do not provide any pooling itself. The ConnectionPoolDataSource and XADataSource are intended to be used by connection pools (as provided by application servers) and should not be connection pools themselves.
The next versions of Jaybird will include some – potentially – breaking changes. We advise to check your code if you will be affected by these changes and prepare for these changes if possible.
Removal of deprecated classes, packages and (interface) methods
As announced above, the ConnectionPoolDataSource implementations in org.firebirdsql.pool and org.firebirdsql.jca will be removed in Jaybird 3.0. The entire org.firebirdsql.pool package will be removed.
The following (deprecated) classes will also be removed:
•org.firebirdsql.jdbc.FBWrappingDataSource (old deprecated class subclassing org.firebirdsql.pool.FBWrappingDataSource), only included in jaybird-full jar
Furthermore the following interfaces will be removed as they are no longer needed:
•FirebirdSavepoint (identical to java.sql.Savepoint)
The following interfaces will have some of the methods removed:
◦setFirebirdSavepoint() replace with Connection#setSavepoint()
◦setFirebirdSavepoint(String name) replace with Connection#setSavepoint(String name)
◦rollback(FirebirdSavepoint savepoint) replace with Connection#rollback(Savepoint savepoint)
◦releaseSavepoint(FirebirdSavepoint savepoint) replace with Connection#releaseSavepoint(Savepoint savepoint)
If you are still using these interfaces or methods, please change your code to use the JDBC interface or method instead.
Handling (VAR)CHAR CHARACTER SET OCTETS as (VAR)BINARY type
From Jaybird 3.0 on (VAR)CHAR CHARACTER SET OCTETS will be considered to be of java.sql.Types type (VAR)BINARY. This should not impact normal use of methods like get/setString(), but will impact the metadata and the type of object returned by getObject() (a byte array instead of a String).
Handling connections without explicit connection character set
When no connection character set has been specified (properties lc_ctype or encoding with Firebird character set, or charSet or localEncoding with Java character set), Jaybird will currently use the NONE character set. This means that the Firebird server will return the bytes for (VAR)CHAR columns as they are stored, while Jaybird will convert between bytes and Strings using the local platform encoding.
This default has the potential of corrupting data when switching platforms or using the same database with different local encoding, or for transliteration errors when the database character set does not accept some byte combinations. We are currently discussing changing this behavior (see JDBC-257). We haven't decided on the exact changes yet, but most likely the next version of Jaybird will refuse to connect without an explicit connection character set. For the time being, Jaybird will log a warning and add a warning on the Connection when no explicit character set was specified.
Review your use of the connection character sets and change it if you are not specifying it explicitly. Be aware that changing this may require you to fix the data as it is currently stored in your database if your database character set does not match the local platform encoding of your Java application. If you are sure that NONE is the correct character set for you, specify it explicitly in your connection string or connection properties.
Replacement or upgrade of logging library
Logging in Jaybird 3.0 will be changed. We will probably switch to java.util.logging, but we are also considering slf4j, or upgrading Log4J to version 2.x.
Stricter JDBC compliance for DatabaseMetaData methods
The current implementation of DatabaseMetaData methods do not conform to the JDBC specification when it comes to case sensitivity and quoted object names.
In Jaybird 3.0 meta data methods will no longer do the following:
•Remove quotes around object names
•Trying the uppercased value, when the original parameter value failed to produce results
For example:
CREATE TABLE tablename (
column1 INTEGER,
"column2" INTEGER
In Jaybird 2.2 using getColumns(null, null, "tablename", "column%") will return COLUMN1(!). Unquoted object names are stored uppercase in Firebird, so in Jaybird 3.0 this will produce no rows as tablename does not match TABLENAME.
Changing the query to getColumns(null, null, "TABLENAME", "column%") in Jaybird 2.2 and 3.0 will only produce one row (with column2), as COLUMN1 does not match column%.
In Jaybird 2.2 using getColumns(null, null, "\"TABLENAME\"", "column%") will return column2 as the quotes will be stripped, with Jaybird 3.0 this will produce no rows.
The following file groups can be found in distribution package:
•jaybird-2.2.8.jar – archive containing JCA/JDBC driver, implementation of connection pooling and statement pooling interfaces, and JMX management class. It requires JCA 1.5.
•jaybird-full-2.2.8.jar – merge of jaybird-2.2.8.jar and connector-api-1.5.jar. This archive can be used for standalone Jaybird deployments, it should not be used within application servers.
•jaybird-2.2.8-sources.jar – archive containing the sources of Jaybird (specific to this JDK version); for including Jaybird sources in your IDE.
•lib/connector-api-1.5.jar – archive containing JCA 1.5 classes (required dependency).
•lib/antlr-runtime-3.4.jar – archive containing ANTLR runtime classes, required for generated keys functionality (optional dependency).
•lib/log4j-core.jar – archive containing core Log4J classes that provide logging (optional dependency).
Jaybird has compile-time and run-time dependencies on the JCA 1.5 classes. Additionally, if Log4J classes are found in the class path, it is possible to enable extensive logging inside the driver. If the ANTLR runtime classes are absent, the generated keys functionality will not be available.
Native dependencies (required only for Type 2 and Embedded):
•jaybird22.dll – Windows 32-bit
•jaybird22_x64.dll – Windows 64-bit
•libjaybird22.so – Linux 32-bit (x86)
•libjaybird22_x64.so – Linux 64-bit (AMD/Intel 64)
The Windows DLLs have been built with Microsoft Visual Studio 2010 SP1. To use the native or embedded driver, you will need to install the Microsoft Visual C++ 2010 SP 1 redistributable available at:
•x86: http://www.microsoft.com/download/en/details.aspx?id=8328
•x64: http://www.microsoft.com/download/en/details.aspx?id=13523
Jaybird JCA/JDBC driver is distributed under the GNU Lesser General Public License (LGPL). Text of the license can be obtained from http://www.gnu.org/copyleft/lesser.html.
Using Jaybird (by importing Jaybird's public interfaces in your Java code), and extending Jaybird by subclassing or implementation of an extension interface (but not abstract or concrete class) is considered by the authors of Jaybird to be dynamic linking. Hence our interpretation of the LGPL is that the use of the unmodified Jaybird source does not affect the license of your application code.
Even more, all extension interfaces to which application might want to link are released under dual LGPL/modified BSD license. Latter is basically "AS IS�? license that allows any kind of use of that source code. Jaybird should be viewed as an implementation of that interfaces and LGPL section for dynamic linking is applicable in this case.
The distribution package contains the normal sources in jaybird-2.2.8-sources.jar; this file does not include the sources of the tests, nor the sourcecode for other JDK-versions.
Full source code, including tests and build files, can be obtained from the GitHub repository. The repository URL is
The most detailed information can be found in the Jaybird Frequently Asked Questions (FAQ). The FAQ is included in the distribution, and is available on-line in several places.
JaybirdWiki is available at http://jaybirdwiki.firebirdsql.org/
Jaybird 2.1 Programmers Manual: http://www.firebirdsql.org/file/documentation/drivers_documentation/Jaybird_2_1_JDBC_driver_manual.pdf
The best place to start is the FAQ. Many details for using Jaybird with various programs are located there. Below are some links to useful web sites.
•The http://groups.yahoo.com/group/Firebird-Java and corresponding mailing-list firstname.lastname@example.com
•The code for Firebird and this driver are on https://github.com/FirebirdSQL/jaybird
•The Firebird project home page http://www.firebirdsql.org
There are several ways you can contribute to Jaybird or Firebird in general:
•Participate on the mailinglists (see http://www.firebirdsql.org/en/mailing-lists/)
•Report bugs or submit patches on the tracker (see below)
•Create pull requests on GitHub (https://github.com/FirebirdSQL/jaybird)
•Become a developer (for Jaybird contact us on Firebird-Java, for Firebird in general, use the Firebird-devel mailing-list)
•Become a paying member or sponsor of the Firebird Foundation (see http://www.firebirdsql.org/en/firebird-foundation/)
See also http://www.firebirdsql.org/en/consider-your-contribution/
The developers follow the firstname.lastname@example.com list. Join the list and post information about suspected bugs. List members may be able to help out to determine if it is an actual bug, provide a workaround and get you going again, whereas bug fixes might take awhile.
If you are sure that this is a bug you can report it in the Firebird bug tracker, project "Java Client (Jaybird)�? at http://tracker.firebirdsql.org/browse/JDBC
When reporting bugs, please provide a minimal, but complete reproduction, including databases and sourcecode to reproduce the problem. Patches to fix bugs are also appreciated. Make sure the patch is against a recent master version of the code. You can also fork the jaybird repository and create pull requests.
Please send corrections, suggestions, or additions to these Release Notes to to the mailing list at email@example.com.
Jaybird provides different JDBC URLs for different usage scenarios:
Default URL, will connect to the database using Type 4 JDBC driver using the Java implementation of the Firebird wire-protocol. Best suited for client-server applications with dedicated database server. Port can be omitted (default value is 3050), host name must be present.
The <database> part should be replaced with the database alias or the path to the database. In general it is advisable to uses database aliases instead of the path the file.
On Linux the root / should be included in the path. A database located on /opt/firebird/db.fdb should use the URL below (note the double slash after port!). jdbc:firebirdsql://host:port//opt/firebird/db.fdb
Deprecated but still available alternative URL:
Type 2 driver, will connect to the database using client library (fbclient.dll on Windows, and libfbclient.so on Linux). Requires correct installation of the client library.
Type 2 driver in local mode. Uses client library as in previous case, however will not use socket communication, but rather access database directly. Requires correct installation of the client library.
Similar to the Firebird client library, however fbembed.dll on Windows and libfbembed.so on Linux are used. Requires correctly installed and configured Firebird embedded library.
Jaybird 2.2 provides a Type 2 JDBC driver that uses the native client library to connect to the databases. Additionally Jaybird 2.2 can use the embedded version of Firebird so Java applications do not require a separate server setup.
However the Type 2 driver has its limitations:
Due to multi-threading issues in the Firebird client library as well as in the embedded server version, it is not possible to access a single connection from different threads simultaneously. When using the client library only one thread is allowed to access a connection at a time. Access to different connections from different threads is however allowed. Client library in local mode and embedded server library on Linux do not allow multithreaded access to the library. Jaybird provides necessary synchronization in Java code, however the mutex is local to the classloader that loaded the Jaybird driver.
Care should be taken when deploying applications in web or application servers: put jar files in the main library directory of the web and/or application server, not in the library directory of the web or enterprise application (WEB-INF/lib directory or in the .EAR file).
The Type 2 JDBC driver requires the Jaybird JNI library to be installed and available to the Java Virtual Machine. Precompiled binaries for Windows and Linux platforms are distributed with Jaybird.
Please note that Jaybird 2.2 provides an update to the JNI libraries to support new features. It is not compatible with the JNI library for Jaybird 2.1 or earlier.
•jaybird22.dll / jaybird22_x64.dll is a precompiled binary for the Windows platform. It was successfully tested with Windows XP and Windows 7, but there should be no issues in other Windows OS versions (as long as the MS Visual C++ 2010 SP1 distributable is available).
The library should be copied into a directory in the PATH environment variable, or be made available to the JVM using the java.library.path system property.
•libjaybird22.so / libjaybird22_x64.so is a precompiled binary for the Linux platform (AMD/Intel). It must be available via the LD_LIBRARY_PATH environment variable, or be made available to the JVM using the java.library.path system property.
Dependent libraries (libfbclient.so or libfbembed.so) need to be on the LD_LIBRARY_PATH. The java.library.path is ignored for these libraries as they are loaded from the JNI library, and not from Java.
Some Firebird distributions will not create libfbclient.so (but only libfbclient.so.2 and .so.2.5), you will need to add a symlink with the name as expected by Jaybird.
•Other platforms can easily compile the JNI library by checking out the Jaybird sources from the CVS and using ./build.sh compile-native command in the directory with checked out sources.
After making Jaybird JNI library available to the JVM, the application has to tell driver to start using this by either specifying TYPE2 or LOCAL type in the connection pool or data source properties or using appropriate JDBC URL when connecting via java.sql.DriverManager.
The Embedded Server JDBC driver uses the same JNI library and configuration steps for the Type 2 JDBC driver.
There is however one issue related to the algorithm of Firebird Embedded Server installation directory resolution. Firebird server uses pluggable architecture for internationalization. By default server loads fbintl.dll or libfbintl.so library that contains various character encodings and collation orders. This library is expected to be installed in the intl/ subdirectory of the server installation. The algorithm of directory resolution is the following:
1.FIREBIRD environment variable.
2.RootDirectory parameter in the firebird.conf file.
3.The directory where server binary is located.
When Embedded Server is used from Java and no FIREBIRD environment variable is specified, it tries to find firebird.conf in the directory where application binary is located. In our case application binary is JVM and therefore Embedded Server tries to find its configuration file in the bin/ directory of the JDK or JRE installation. Same happens to the last item of the list. In most cases this is not desired behavior.
Therefore, if the application uses character encodings, UDFs or wants to fine-tune server behavior through the configuration file, the FIREBIRD environment variable must be specified and point to the installation directory of the Embedded Server, e.g. current working directory.
Upto Jaybird 2.0 only one client library could be loaded in a single JVM. That could be either an embedded Firebird library (fbembed.dll/libfbembed.so), or Firebird client library (fbclient.dll/libfbclient.so). This could lead to problems, For example, if embedded Firebird was used first, the JDBC driver would access the database file directly instead of using the local IPC protocol if only the path to the database was specified. It was not possible to change this without restarting the JVM.
Since Jaybird 2.1, Jaybird is able to correctly load arbitrary number of shared libraries that implement the ISC API and forward the requests correctly depending on the type of the driver being used.
Events is one of the unique features in the Firebird RDBMS and allows asynchronous notification of the applications about named events that happen in the database. Information on this feature can found in the free IB 6.0 documentation set as well as in The Firebird Book by Helen Borrie.
The interfaces and classes for the event support can be found in org.firebirdsql.event package, which includes:
�?EventManager interface to register for the synchronous and asynchronous notification about the events in the database;
�?EventListener interface which has to be implemented by the application that wants to participate in the asynchronous notification;
�?DatabaseEvent interface which represents the object that will be passed to the EventListener notification method;
�?Implementation of the above interfaces: FBEventManager and FBDatabaseEvent.
Please note, that each instance of FBEventManager will open a new socket connection to the Firebird server on the port specified by Firebird.
Similar to other JDBC extensions in Jaybird, the interfaces are released under the modified BSD license, the implementation of the code is released under LGPL license.
Default holdable result sets (closed ResultSet in auto-commit mode)
This connection property allows to create holdable result sets by default. This is needed as a workaround for the applications that do not follow JDBC specification in regard to the auto-commit mode.
Specifically, such applications open a result set and, while traversing it, execute other statements using the same connection. According to JDBC specification the result set has to be closed if another statement is executed using the same connection in auto-commit mode. Among others the OpenOffice/LibreOffice Base users have problems with the JDBC compatibility in Jaybird.
The property is called:
�?defaultResultSetHoldable as connection property for JDBC URL or for java.sql.DriverManager class and no or empty value should be assigned to it; it has an alias defaultHoldable to simplify the typing;
�?isc_dpb_result_set_holdable as a DPB member;
�?FirebirdConnectionProperties interface methods isDefaultResultSetHoldable() and setDefaultResultSetHoldable(boolean)
Note, the price for using this feature is that each holdable result set will be fully cached in memory. The memory occupied by it will be released when the statement that produced the result set is either closed or re-executed.
Jaybird provides support for updatable result sets. This feature allows a Java application to update the current record using the updateXXX methods of java.sql.ResultSet interface. Updates are performed within the current transaction using a best row identifier in WHERE clause. This sets the following limitation on the result set "updatability�?:
•the SELECT references a single table;
•all columns not referenced in SELECT permit NULLs (otherwise INSERTs will fail);
•the SELECT statement does not contain DISTINCT predicate, aggregate functions, joined tables or stored procedures;
•the SELECT statement references all columns from the table primary key definition or an RDB$DB_KEY column.
Jaybird provides full support of the Firebird Services API that allows Java applications to perform various server management tasks:
•database backup/restore on remote server; it is possible to performs metadata-only backups, switch the garbage collection during backup off, restore databases with no validity constraints or active indices, etc.
•database maintenance, e.g. database shutdown, sweep, changing the forced writes settings, changing SQL dialect of the database, shadow management, etc.
•retrieving database statistics including header page statistics, system table statistics, data page statistics and index statistics.
•user management, including adding, modifying, and deleting user accounts.
Jaybird provides extensions to some JDBC interfaces. JDBC extension interface classes are released under modified BSD license, on "AS IS�? and "do what you want�? basis, this should make linking to these classes safe from the legal point of view. All classes belong to org.firebirdsql.jdbc.* package. The table below shows all JDBC extensions present in Jaybird with a driver version in which the extension was introduced.
JDBC extensions
Method name
Create new instance of FirebirdConnectionProperties interface that can be used to set connection properties programmatically.
Connect to the Firebird database using the specified connection properties.
see JDBC connection properties section for more details.
Create new BLOB in the database. Later this BLOB can be passed as a parameter into PreparedStatement or CallableStatement.
Get connection character encoding.
Get the TPB parameters for the specified transaction isolation level.
Create an empty transaction parameter buffer.
Set TPB parameters for the specified transaction isolation level. The newly specified mapping is valid for the whole connection lifetime.
meters are effective until the transaction isolation is changed.
Get source code for the specified stored procedure name.
Get source code for the specified trigger name.
Get source code for the specified view name.
Extension that allows to get more precise information about outcome of some statement.
Check if this statement has open result set. Correctly works only when auto-commit is disabled. Check method documentation for details.
Get current result set. Behaviour of this method is similar to the behavior of the Statement.getResultSet(), except that this method can be called as much as you like.
Check if this statement is still valid. Statement might be invalidated when connection is automatically recycled between transactions due to some irrecoverable error.
Get execution plan for the last executed statement.
Get the execution plan of this prepared statement.
Get the statement type of this prepared statement.
Mark this callable statement as a call of the selectable procedure. By default callable statement uses EXECUTE PROCEDURE SQL statement to invoke stored procedures that return single row of output parameters or a result set. In former case it retrieves only the first row of the result set.
Get execution plan for this result set.
Method "detaches�? a BLOB object from the underlying result set. Lifetime of "detached�? BLOB is limited by the lifetime of the connection.
Check if this BLOB is segmented. Seek operation is not defined for the segmented BLOBs.
Opens an output stream at the specified position, allows modifying BLOB content. Due to server limitations only position 0 is supported.
Get corresponding BLOB instance.
seek(int position)
Change the position from which BLOB content will be read, works only for stream BLOBs.
interface is equivalent to the java.sql.Savepoint interface introduced in JDBC 3.0 specification, however allows using Firebird savepoints also in JDBC 2.0 (JDK 1.3.x) applications.
The table below lists the properties for the connections that are obtained from this data source. Commonly used parameters have the corresponding getter and setter methods, the rest of the Database Parameters Block parameters can be set using setNonStandardProperty setter method.
(deprecated) Path to the database in the format
This property is not specified in the JDBC standard. Use the the standard defined serverName, portNumber and databaseName instead
Hostname or IP address of the Firebird server
Portnumber of the Firebird server
Database alias or full-path
Type of the driver to use. Possible values are:
Size of the buffer used to transfer BLOB content. Maximum value is 64k-1.
Size of the socket buffer. Needed on some Linux machines to fix performance degradation.
Number of cache buffers (in database pages) that will be allocated for the connection. Makes sense for ClassicServer only.
Character set for the connection. Similar to encoding property, but accepts Java names instead of Firebird ones.
Character encoding for the connection. See Firebird documentation for more information.
Path to the properties file containing character translation map.
Corresponding password.
SQL role to use.
Name of the user that will be used by default.
Boolean flag tells driver whether stream BLOBs should be created by the driver, by default "false�?. Stream BLOBs allow "seek�? operation to be called, however due to a bug in gbak utility they are disabled by default.
Boolean flag tells driver to assume that standard UDFs are defined in the database. This extends the set of functions available via escaped function calls. This does not affect non-escaped use of functions.
Boolean flag tells driver to construct the default result set to be holdable. This prevents it from closing in auto-commit mode if another statement is executed over the same connection.
TPB mapping for different transaction isolation modes.
Default transaction isolation level. All newly created connections will have this isolation level. One of:
Integer value from java.sql.Connection interface corresponding to the transaction isolation level specified in isolation property.
setNonStandardProperty(String, String)
Allows to set any valid connection property that does not have corresponding setter method. Two setters are available:
setNonStandardProperty(String) method takes only one parameter in form "propertyName[=propertyValue]�?, this allows setting non-standard parameters using configuration files.
setNonStandardProperty(String, String) takes property name as first parameter, and its value as the second parameter.
The connect timeout in seconds. For the Java wire protocol detects unreachable hosts, for JNI (native protocol) only defines a timeout during the op_accept phase after connecting to the server.
The Jaybird driver is not officially JDBC-compliant as the certification procedure is too expensive. The following lists some of the differences between JDBC specification and Jaybird implementation. This list is not exhaustive.
The following optional features and the methods for their support are not implemented:
�?java.sql.Array data type is not (yet) supported
�?java.sql.Blob does not implement following methods:
–position(Blob, long) and position(byte[], long); Firebird does not provide any server-side optimization for these calls, client application must fetch complete BLOB content from the server to do pattern search.
–truncate(long); Firebird does not provide such functionality on the server side, application must fetch old BLOB from the server and pump old content into a newly created BLOB.
–getCatalog() and setCatalog(String) are not supported by Firebird server
–getTypeMap() and setTypeMap(Map) are not supported
�?java.sql.Ref data type is not supported by Firebird server
�?java.sql.SQLData data type is not supported by Firebird server
�?java.sql.SQLInput is not supported
�?java.sql.SQLOutput is not supported
�?java.sql.SQLXML is not supported
�?java.sql.RowId is not supported
�?java.sql.NClob is not supported
–cancel() is implemented, but not fully supported by Jaybird
�?java.sql.Struct data type is not supported by server.
The following methods are implemented, but deviate from the specification:
–get/setMaxFieldSize does nothing, Firebird server does not support this feature.
–get/setQueryTimeout does nothing, Firebird server does not support this feature.
–setObject(int index, Object object, int type) Target SQL type is determined from the class of the passed object and corresponding parameter is ignored.
–setObject(int index, Object object, int type, int scale) Same as above, type and scale are ignored.
–isReadOnly() always returns false
–isWritable() always returns true
–isDefinitivelyWritable() always returns true
Jaybird has some implementation-specific issues that should be considered during development.
Jaybird behaves differently not only when different result set types are used but also whether the connection is in auto-commit mode or not.
•ResultSet.TYPE_FORWARD_ONLY result sets when used in auto-commit mode are completely cached on the client before the execution of the query is finished. This leads to the increased time needed to execute statement, however the result set navigation happens almost instantly. When auto-commit mode is switched off, only part of the result set specified by the fetch size is cached on the client.
•ResultSet.TYPE_SCROLL_INSENSITIVE result sets are always cached on the client. The reason is quite simple – the Firebird API does not provide scrollable cursor support, navigation is possible only in one direction.
•ResultSet.HOLD_CURSORS_OVER_COMMIT holdability is supported in Jaybird only for result sets of type ResultSet.TYPE_SCROLL_INSENSITIVE. For other result set types driver will throw an exception.
This interface can be used only to obtain information about the IN parameters. Also it is not allowed to call the PreparedStatement.getParameterMetaData method before all of the OUT parameters are registered. Otherwise the corresponding method of CallableStatement throws an SQLException, because the driver tries to prepare the procedure call with incorrect number of parameters.
Jaybird JDBC driver always uses connection encoding when converting array of bytes into character stream. The BLOB SUB_TYPE 1 fields allow setting the character encoding for the field. However when the contents of the field is sent to the client, it is not converted according to the character set translation rules in Firebird, but is sent "as is�?. When such fields are accessed from a Java application via Jaybird and character set of the connection does not match the character encoding of the field, conversion errors might happen. Therefore it is recommended to convert such fields in the application using the appropriate encoding.
Current JCA implementation does not support XAResource.forget(Xid). It might be important in cases where a distributed transaction - that was at some time in-limbo - was either committed or rolled back by the database administrator. Such transactions appear to Jaybird as successfully completed, however XA specification requires resource manager to "remember�? such transaction until the XAResource.forget(Xid) is called.
We advise you to either only access columns by their index or use an implementation which correctly uses the column label for column lookup (which is either the alias or the original column name if no alias was defined).
Jaybird 2.2.1 introduced the connection property columnLabelForName for backwards compatible behavior of ResultSetMetaData#getColumnName(int). Set property to true for backwards compatible behavior (getColumnName() returns the column label); don't set the property or set it to false for JDBC-compliant behavior (recommended).
Jaybird 2.2.4 introduces support for the Firebird 3 BOOLEAN type. A boolean field can also be set with all numeric setters and the string setter (as implied by JDBC 4.1 appendix B).
For numeric types, currently only 0 will set to false and all other values will set to true. This is something that might change in the future. Only 0 for false and 1 for true are guaranteed, in the future we might decide to throw a conversion exception for other values!
For string types we currently set true for "true", "T", "Y" and "1" (case insensitive, ignoring whitespace), all other values will set false; this is for compatibility with the current getBoolean behaviour of FBStringField. This is something that might change in the future. Only "true" and "1" for true and "false" and "0" for false are guaranteed (case insensitive, ignoring whitespace), in the future we might decide to throw a conversion exception for other values!
When using string or numeric setters for a boolean field we strongly recommend to only use the guaranteed values (0, 1, "0", "1", "true" and "false"). Better yet: use the boolean setter instead.
As described in Important changes to Datasources, the ConnectionPoolDataSource implementations in org.firebirdsql.pool contain some serious issues. The connection pool capability which depends on these classes will be removed in Jaybird 3.0.
This change leaves only the ConnectionPoolDataSource implementations in org.firebirdsql.ds (for use by application server connection pools). There are no plans to reintroduce a new standalone connection pooling capability. We probably will migrate some of the features like statement pooling to the normal JDBC driver.
If you require standalone connection pooling, or use an application server which has no built-in connectionpool, please consider using a third-party connection pool like c3p0, DBCP or HikariCP.
WARNING: This section provides information on deprecated classes,
Connection pooling provides effective way to handle physical database connections. It is believed that establishing new connection to the database takes some noticeable amount or time and in order to speed things up one has to reuse connections as much as possible. While this is true for some software and for old versions of Firebird database engine, establishing connection is hardly noticeable with Firebird 1.0.3 and Firebird 1.5. So why is connection pooling needed?
There are few reasons for this. Each good connection pool provides a possibility to limit number of physical connections established with the database server. This is an effective measure to localize connection leaks. Any application cannot open more physical connections to the database than allowed by connection pool. Good pools also provide some hints where connection leak occurred. Another big advantage of connection pool is that it becomes a central place where connections are obtained, thus simplifying system configuration. However, main advantage of good connection pool comes from the fact that in addition to connection pooling, it can pool also prepared statement. Tests executed using AS3AP benchmark suite show that prepared statement pooling might increase speed of the application by 100% keeping source code clean and understandable.
When some statement is used more than one time, it makes sense to use prepared statement. It will be compiled by the server only once, but reused many times. It provides significant speedup when some statement is executed in a loop. But what if some prepared statement will be used during lifetime of some object? Should we prepare it in object's constructor and link object lifetime to JDBC connection lifetime or should we prepare statement each time it is needed? All such cases make handling of the prepared statements hard, they pollute application's code with irrelevant details.
Connection and statement pooling remove such details from application's code. How would the code in this case look like? Here's the example
Example 1. Typical JDBC code with statement pooling
Connection connection = dataSource.getConnection();
try {
PreparedStatement ps = connection.prepareStatement(
"SELECT * FROM test_table WHERE id = ?�?);
try {
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
// do something here
} finally {
} finally {
Lines 001-018 show typical code when prepared statement pooling is used. Application obtains JDBC connection from the data source (instance of javax.sql.DataSource interface), prepares some SQL statement as if it is used for the first time, sets parameters, and executes the query. Lines 012 and 015 ensure that statement and connection will be released under any circumstances. Where do we benefit from the statement pooling? Call to prepare a statement in lines 004-005 is intercepted by the pool, which checks if there's a free prepared statement for the specified SQL query. If no such statement is found it prepares a new one. In line 013 prepared statement is not closed, but returned to the pool, where it waits for the next call. Same happens to the connection object that is returned to the pool in line 016.
Jaybird connection pooling classes belong to org.firebirdsql.pool.* package.
Description of some connection pool classes.
Base class for all connection pools. Can be used for implementing custom pools, not necessarily for JDBC connections.
Subclass of AbstractConnectionPool, implements javax.sql.ConnectionPoolDataSource interface. Also provides some basic properties (minimum and maximum number of connections, blocking and idle timeout, etc) and code to handle JNDI-related issues.
Implementation of javax.sql.ConnectionPoolDataSource for arbitrary JDBC drivers, uses java.sql.DriverManager to obtain connections, can be used as JNDI object factory.
Jaybird specific implementation of javax.sql.ConnectionPoolDataSource and javax.sql.XADataSource interfaces, can be used as JNDI object factory.
Implementation of javax.sql.DataSource interface, no connection and statement pooling is available, connections are physically opened in getConnection() method and physically closed in their close() method.
Implementation of javax.sql.DataSource interface that uses FBConnectionPoolDataSource to allocate connections. This class defines some additional properties that affect allocated connections. Can be used as JNDI object factory.
Implementation of javax.sql.DataSource interface that uses javax.sql.ConnectionPoolDataSource to allocate physical connections.
This class is a corner stone of connection and statement pooling in Jaybird. It can be instantiated within the application as well as it can be made accessible to other applications via JNDI. Class implements both java.io.Serializable and javax.naming.Referenceable interfaces, which allows using it in a wide range of web and application servers.
Class implements both javax.sql.ConnectionPoolDataSource and javax.sql.XADataSource interfaces. Pooled connections returned by this class implement javax.sql.PooledConnection and javax.sql.XAConnection interfaces and can participate in distributed JTA transactions.
Class provides following configuration properties:
Standard JDBC Properties
This group contains properties defined in the JDBC specification and should be standard to all connection pools.
Maximum time in milliseconds after which idle connection in the pool is closed.
Maximum number of open physical connections.
Minimum number of open physical connections. If value is greater than 0, corresponding number of connections will be opened when first connection is obtained.
Maximum size of prepared statement pool. If 0, statement pooling is switched off. When application requests more statements than can be kept in pool, Jaybird will allow creating that statements, however closing them would not return them back to the pool, but rather immediately release the resources.
Pool Properties
This group of properties are specific to the Jaybird implementation of the connection pooling classes.
Maximum time in milliseconds during which application can be blocked waiting for a connection from the pool. If no free connection can be obtained, exception is thrown.
Period in which pool will try to obtain new connection while blocking the application.
Allows to switch connection pooling off.
Allows to switch statement pooling off.
Statement that will be used to "ping�? JDBC connection, in other words, to check if it is still alive. This statement must always succeed.
Time during which connection is believed to be valid in any case. Pool "pings�? connection before giving it to the application only if more than specified amount of time passed since last "ping�?.
Runtime Pool Properties
This group contains read-only properties that provide information about the state of the pool.
Tells how many free connections are in the pool. Value is between 0 and totalSize.
Tells how many connections were taken from the pool and are currently used in the application.
Total size of open connection. At the pool creation – 0, after obtaining first connection – between minPoolSize and maxPoolSize.
Deprecated. Same as freeSize.
This class is a wrapper for FBConnectionPoolDataSource converting interface from javax.sql.ConnectionPoolDataSource to javax.sql.DataSource. It defines same properties as FBConnectionPoolDataSource does.
Pool implementation shipped with Jaybird can provide hints for the application where the connection was obtained from the pool, when it was released back to the pool, when the statement was prepared. Such information is written into the log when appropriate system properties are set to true.
List of properties
Property name
Enables logging inside driver. This is the essential property, if it is not present or set to false, no debug information is available.
When it is set to true, pool automatically prints the following information:
Enables logging of the thread stack trace when debugging is enabled and:
When statement caching is used and debugging is enabled, following information is logged:
1With java.sql.Timestamp the 100 microsecond precision is only available through getNanos() and setNanos()
2See http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
3See http://www.oracle.com/technetwork/java/eol-135779.html
4To be removed in Jaybird 3.0
5See JDBC-162 and http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7046875 for details


text:
Tuesday of this week, we made the jaunt back down to the University of Utah for a CT scan and a follow-up appointment with the neurosurgeon.
Thankfully, everything looks fantastic. The head CT shows that surgery has completely restored the flow of spinal fluid in/out of my brain. Dr. Schmidt has concluded the to surgery to be "perfectly successful" and was pleased to see me doing so well. He feels there is no need for physical therapy at this time, just some light stretching and massage to relieve the lingering tenderness and stiffness in my neck.
Personally, I feel really good (especially after fully recovering from the swine flu). Without a doubt, the most miraculous aspect of all of this is my constant headaches are gone. My energy is still low, but every day I continue to see improvements.
It's hard to believe that as of today, it has been 6-weeks since the surgery. This six weeks has flown by so much more quickly than the six week span between the initial appointment in Salt Lake City and the surgery.
We will be eternally grateful for the friends and family who have volunteered their time to come to Utah/Idaho and help out — my sister Krystal, my friend Kristin, Cris' sister Jessica, his Aunt Renee and his Mom — simply saying thank you seems to fall incredibly short in terms of letting them know how much their help has meant to our family.
As I've said many times in the last 6 weeks, especially in the last 3 days, we have much to be thankful for this Thanksgiving.


text:
House Speaker Paul Ryan (R-WI) has seen his name attached to the American Health Care Act, whether he likes it or not.
On Sunday, he announced he was looking to change the bill that opponents have dubbed "RyanCare," specifically its treatment of people in their 50s and 60s.
"We believe we should have even more assistance ... for that person in their 50s and 60s because they experience higher health care costs," Ryan said Sunday morning on Fox News.
Ryans iad he still expected the bill to pass the House on Thursday.
The bill, hailed by Ryan and other Republicans as a viable replacement for the Affordable Care Act, lost some political momentum after a Congressional Budget Office review found 24 million people would lose coverage if the bill were to become law.
Ryan and other proponents have argued the CBO is not a credible source of data. Others have argued that the number of people insured is not a reliable metric, since it would drop the ACA penalty for not having insurance.
If we accept the status quo, our health care system will collapse and all of us will suffer as a result.
Ryan said the CBO review did not take into account the plans to reduce regulations in the health care industry, which would drive prices down and make coverage more affordable for senior citizens. However, he said "even with that ... we should be offering more assistance than what the bill currently does."
The bill has drawn widespread criticism from Democrats and some Republicans. Conservatives like Sen. Tom Cotton (R-AR) say the bill doesn't go far enough and won't pass the Senate even if it passes the House.
Rep. Brian Fitzpatrick (R-PA) blasted the bill Saturday night.


text:
(Back to Video 6) Back to Video List
Example of an evaluation set out using a visual approach (model)
An example of how a visual outcomes model can be used as the basis for developing an evaluation plan.
More effective program evaluation planning using a visual approach (1 page tip sheet)
A tip sheet describing out a visual evaluation plan can be built. Use it yourself and give it to any group which you are working with to develop an evaluation plan using a visual approach.
Encouraging Better Evaluation Design and Use Through a Standardized Approach to Evaluation Planning and Implementation - Easy Outcomes (article)
An article setting out the advantages of using a standardized approach to building an evaluation plan based around a visual outcomes model. The article also summarizes how to develop the plan.
Visual Evaluation Plan Workbook (detailed 'hands-on' workbook)
The DoView Visual Evaluation Plan Workbook provides a step-by-step guide on how to develop a visual evaluation plan. This workbook is a sub-set of the material covered in the more comprehensive Easy Outcomes Workbook. The Easy Outcomes Workbook covers additional uses for outcomes models in addition to their use in evaluation planning (e.g. for strategic planning, outcomes-focused contracting).
13 Tips For Building Great Outcomes Models (Intervention logics) (1 page tip sheet)
When building an evaluation plan based on a visual outcomes model, it is important that the outcomes model on which it is based is constructed appropriately. This one page 'tip sheet' sets out the rules for drawing such outcomes models. Use this tip sheet yourself, or hand it out when working with a group so that everyone is clear about the rules you are using to build your model. If anyone wants to know where the 13 rules come from, refer them to the article on which it is based - a set of formal standards for building outcomes models (program logics).
What Outcomes and Results Modeling can Do for Your Organization (1 page tip sheet)
A one page 'tip sheet' which describes the ways in which a well constructed outcomes model, once developed, can be used for strategic planning, prioritization, evidence-based practice, working out different or activities are believed to contribute to joint outcomes, getting staff outcomes focused, performance measurement and tracking progress and outcomes-focused contracting in addition to evaluation planning. Hand this tip sheet out to the group with which you are building your outcomes model for evaluation planning so they can have a clear idea of how their organization can leverage off the work they are doing by using the outcomes model they are creating for other purposes. This approach is set out in more detail in the article here.
Pre-existing program outcomes models you can 'borrow' to get going (OutcomesModels.org) (website)
A set of outcomes models (program logics) which have already been developed for a number of programs in a number of areas. You can click through them in their web page versions and if if like any of them and if they are relevant to you, you can immediately print them off as PDFs. If you have DoView outcomes software installed, you can immediately download the DoView file of the model and start amending it to reflect what is happening in your program.


text:
Back to Main Page
My friends, I don't want to hurt feelings, but I'm responsible for a
Message, and that Message is "Come out of this mess."
And if I asked you to come out, where am I going to take you to? Would
I take you to the Branham Tabernacle? It's as much fault as any of the
rest of them. But there's one Place I can take you to, where
you're safe and protected from death, that's in Jesus Christ, God's
Place of worship. That's the Place I'm introducing to you tonight, where
God put His Name, where He promised He'd meet every person that come in
there; He'd worship with him and feast with him; that's in Christ. Not
in no church, no tabernacle, but in Christ, He is God's Tabernacle.
He is the place that God came Him into Himself and dwelt in Him:
"This is My beloved Son, in Whom I am pleased to dwell in."
There's where God tabernacled, brought His Name, and placed It upon,
Jesus Christ.
FIVE.IDENTIFICATIONS_ JEFF.IN V-9 N-5 (60-0911 E) 33 Now, Christ is
the Head of this; Christ is the Head of this Messianic Kingdom. And you
cannot organize a Kingdom of which Christ is the Head. You cannot
denominate a Kingdom which Christ is the Head. Because Christ is
King, and you cannot take the intellectuals of a man and make an
organization to which Christ will govern. Therefore, any companies, any
peoples, any groups of men, that tries to organize the Kingdom of God is
going contrary to the King. And if they're going contrary to the King,
it would be against the King. So if it's against the King, it would be
an antichrist. That's pretty rough. If I had just a little more voice,
we'd make that clear. It is a antichrist. And if you'll bear with me a
few minutes, I'll prove that.
An antichrist spirit tries to take a--a people and call them from
organization to organization, organizing them together, which never was
the will of God. People has always fussed at me because I struck so hard
at organizations. It isn't the people in there that I'm striking at;
it's that dominating spirit that makes the people think that "We
are the people."