Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 
Search the JavaFAQ.nu
1000 Java Tips ebook

1000 Java Tips - Click here for the high resolution copy!1000 Java Tips - Click here for the high resolution copy!

Java Screensaver, take it here

Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java programming articles and tips. Please take your copy here.

Take your copy of free "Java Technology Screensaver"!.

Easy Learn Java: Programming Articles, Examples and Tips - Page 463


Previous 1060 Stories (530 Pages, 2 Per Page) Next

Read Java Certification Certification SCBCD Study Guide - 5. Session Bean Compon

Go to all tips in Java Certification Books and Tests

Chapter 3. Session Bean Component Contract

Identify correct and incorrect statements or examples about session beans, including conversational state, the SessionBean interface, and create methods.

Session bean is specified at deployment as having one of the following state management modes:
  • STATELESS — the session bean instances contain no conversational state between methods; any instance can be used for any client.
  • STATEFUL — the session bean instances contain conversational state which must be retained across methods and transactions.
The conversational state of a STATEFUL session object is defined as the session bean instance’s field values.

In advanced cases, a session object’s conversational state may contain open resources, such as open sockets and open database cursors. A container cannot retain such open resources when a session bean instance is passivated. A developer of such a session bean must close and open the resources in the ejbPassivate and ejbActivate notifications.

All session beans must implement the SessionBean interface.
		public interface SessionBean extends EnterpriseBean {
		void ejbActivate() throws EJBException, RemoteException;
		void ejbPassivate() throws EJBException, RemoteException;
		void ejbRemove() throws EJBException, RemoteException;
		void setSessionContext(SessionContext ctx) throws EJBException, RemoteException;
		}

		public interface EnterpriseBean extends Serializable {
		}
	
A client creates a session bean instance using one of the create<METHOD> methods defined in the session bean’s home interface:
		public interface CartHome extends javax.ejb.EJBHome {
		CartRemote create(String customerName, String account)
		throws RemoteException, BadAccountException,
		CreateException;
		CartRemote createLargeCart(String customerName, String account)
		throws RemoteException, BadAccountException,
		CreateException;
		}
	
		.....
		CartRemote cart = cartHome.create(“John”, “7506”);
	
or for LOCAL view:
		public interface CartHome extends javax.ejb.EJBLocalHome {
		CartLocal create(String customerName, String account)
		throws BadAccountException, CreateException;
		CartLocal createLargeCart(String customerName, String account)
		throws BadAccountException, CreateException;
		}
	
		.....
		CartLocal cart = cartHome.create(“John”, “7506”);
	

The container creates an instance of a session bean in three steps:

  1. The container calls the bean class’ newInstance() method to create a new session bean instance.
  2. The container calls the setSessionContext(context) method to pass the context object to the instance.
  3. The container calls the instance’s ejbCreate<METHOD>() method whose signature matches the signature of the create<METHOD>() method invoked by the client.

Each session bean class must have at LEAST one ejbCreate<METHOD>() method (NOTE: for Entity Beans create methods are optional).

Invoking create() method by client on home interface of STATELESS session bean will NOT invoke ejbCreate() method on bean object. It only creates new EJB(Local)Object. ejbCreate() on STATELESS session bean is invoked by EJB container when it decides to put object in method-ready pool. For STATELESS session beans container handles creating of instances.

Invoking remove() method by client on home interface of STATELESS session bean will NOT invoke ejbRemove() method on bean object. It does nothing. ejbRemove() on STATELESS session bean is invoked by EJB container when it decides to remove object from method-ready pool. For STATELESS session beans container handles removing of instances.

Invoking create<METHOD>() method by client on home interface of STATEFUL session bean will invoke ejbCreate<METHOD>() method on bean object. More precisely: newInstance(), setSessionContext(context), ejbCreate<METHOD>([ARGS]).

Invoking remove() method by client on home interface of STATEFUL session bean will invoke ejbRemove() method on bean object.

The home interface of a STATELESS session bean must have one (and ONLY one) create() method that takes NO arguments.

The create() method of the remote home interface must return the session bean’s remote interface. The create method of the local home interface must return the session bean’s local interface.

STATELESS session bean CAN have instance variables, but there is no guarantee, that these variables will be accessed by the same client. However, the instance variables of the instance can contain the state across client-invoked method calls. Examples of such states include an open database connection and an object reference to an EJB object.

A STATELESS session bean MUST NOT implement the javax.ejb.SessionSynchronization interface.

IBA JV

6331 bytes more | comments? | Printer Friendly Page  Send to a Friend | Score: 0
Posted by aalex on Sunday, June 18, 2006 (01:00:00) (3355 reads)

From 221 JDBC drivers find yours one that fits all requirements

Go to all tips in Databases

Question: I am writing Java program to access a database. I found hundreds of Java Database drivers (JDBC)! Which one should I use? Please help to choose right JDBC driver...

Answer: You probably mentioned "hundreds" as a total amount of different drivers. By article writing time - June 10, 2006 SUN listed on its site 221 JDBC drivers!

To chose a proper Java Database Connection Driver you should consider and know a few things:


1. Which Database(s) your application is going to work with: MySQL, Oracle...

2. Type of driver: JDBC-ODBC Bridge, Native-API, JDBC-Net, Native Protocol

Today are known four types of JDBC Drivers. Please look at the descriptions below and make your choice.

JDBC is a Java API for executing SQL statements. It provides connectivity between Java-based applications or applets to database systems. The Java API consists of a set of classes and interfaces written in the Java programming language.

JDBC provides a standard API, based on the ANSI SQL-92 standard, that allows database developers to directly invoke SQL commands. As for the Open Database Connectivity (ODBC) interface, the JDBC interface is based on the Open Group (formerly X/Open) SQL Call Level Interface (CLI).

The JDBC API is expressed as a series of abstract Java interfaces that allow an application programmer to open connections to particular databases, execute SQL statements, and process the results.

Driver Type Description Pure Java? Connection type Pros Cons

1. JDBC-ODBC Bridge

Provides JDBC access via ODBC
drivers.JDBC-ODBC Bridge, translates all JDBC calls into Open DataBase Connectivity calls (ODBC) and then sends them to the ODBC driver. ODBC driver must present on client machine.
Not pure Java, native code Two steps connection: JDBC-ODBC-Database Possible to connect to almost any database - ODBC drivers always included into database package. 1. Two steps connection: JDBC->ODBC->Database slows down operations

2. ODBC must be installed on client machine

2. Native-API

Converts JDBC calls into calls on the client API for a specific DBMS. The client code typically is a library of platform-specific code (such as C or C++) that is accessed via the Java Native Interface (JNI). Partly Java Direct Faster than type 1 driver The database Library must be preloaded on every client machine

3. JDBC-Net

Three-tiered approach. the JDBC requests are passed through the network to the middle-tier server. Then it translates the requests (directly or indirectly) to the database-specific native-connectivity interface to further the request to the database server.

When the middle-tier server is Java based server, it is possible to use a type 1 or type 2 JDBC driver to do this.

Yes Three tiers connection. This driver is server based and therefore can be optimized much! Does not require any client side specific libraries. Small to load and fast to run.

Faster than types 1 and 2 drivers!

Middle-tier server requires database specific code on it. Also three tiers connection causes delays

4. Native Protocol

Client computer directly calls the database
system - uses the network protocol used by specific database system.
Yes Direct No ODBC translation is required. Very high performance - faster than types 1 and 2 drivers! Every database requires own driver.

Always visit http://JavaFAQ.nu when you need more info about Java!

 


3891 bytes more | comments? | Printer Friendly Page  Send to a Friend | Score: 0
Posted by Javaaddict on Wednesday, June 14, 2006 (00:40:00) (3606 reads)

Previous 1060 Stories (530 Pages, 2 Per Page) Next

530| 529| 528| 527| 526| 525| 524| 523| 522| 521| 520| 519| 518| 517| 516| 515| 514| 513| 512| 511| 510| 509| 508| 507| 506| 505| 504| 503| 502| 501| 500| 499| 498| 497| 496| 495| 494| 493| 492| 491| 490| 489| 488| 487| 486| 485| 484| 483| 482| 481| 480| 479| 478| 477| 476| 475| 474| 473| 472| 471| 470| 469| 468| 467| 466| 465| 464|
463
| 462| 461| 460| 459| 458| 457| 456| 455| 454| 453| 452| 451| 450| 449| 448| 447| 446| 445| 444| 443| 442| 441| 440| 439| 438| 437| 436| 435| 434| 433| 432| 431| 430| 429| 428| 427| 426| 425| 424| 423| 422| 421| 420| 419| 418| 417| 416| 415| 414| 413| 412| 411| 410| 409| 408| 407| 406| 405| 404| 403| 402| 401| 400| 399| 398| 397| 396| 395| 394| 393| 392| 391| 390| 389| 388| 387| 386| 385| 384| 383| 382| 381| 380| 379| 378| 377| 376| 375| 374| 373| 372| 371| 370| 369| 368| 367| 366| 365| 364| 363| 362| 361| 360| 359| 358| 357| 356| 355| 354| 353| 352| 351| 350| 349| 348| 347| 346| 345| 344| 343| 342| 341| 340| 339| 338| 337| 336| 335| 334| 333| 332| 331| 330| 329| 328| 327| 326| 325| 324| 323| 322| 321| 320| 319| 318| 317| 316| 315| 314| 313| 312| 311| 310| 309| 308| 307| 306| 305| 304| 303| 302| 301| 300| 299| 298| 297| 296| 295| 294| 293| 292| 291| 290| 289| 288| 287| 286| 285| 284| 283| 282| 281| 280| 279| 278| 277| 276| 275| 274| 273| 272| 271| 270| 269| 268| 267| 266| 265| 264| 263| 262| 261| 260| 259| 258| 257| 256| 255| 254| 253| 252| 251| 250| 249| 248| 247| 246| 245| 244| 243| 242| 241| 240| 239| 238| 237| 236| 235| 234| 233| 232| 231| 230| 229| 228| 227| 226| 225| 224| 223| 222| 221| 220| 219| 218| 217| 216| 215| 214| 213| 212| 211| 210| 209| 208| 207| 206| 205| 204| 203| 202| 201| 200| 199| 198| 197| 196| 195| 194| 193| 192| 191| 190| 189| 188| 187| 186| 185| 184| 183| 182| 181| 180| 179| 178| 177| 176| 175| 174| 173| 172| 171| 170| 169| 168| 167| 166| 165| 164| 163| 162| 161| 160| 159| 158| 157| 156| 155| 154| 153| 152| 151| 150| 149| 148| 147| 146| 145| 144| 143| 142| 141| 140| 139| 138| 137| 136| 135| 134| 133| 132| 131| 130| 129| 128| 127| 126| 125| 124| 123| 122| 121| 120| 119| 118| 117| 116| 115| 114| 113| 112| 111| 110| 109| 108| 107| 106| 105| 104| 103| 102| 101| 100| 99| 98| 97| 96| 95| 94| 93| 92| 91| 90| 89| 88| 87| 86| 85| 84| 83| 82| 81| 80| 79| 78| 77| 76| 75| 74| 73| 72| 71| 70| 69| 68| 67| 66| 65| 64| 63| 62| 61| 60| 59| 58| 57| 56| 55| 54| 53| 52| 51| 50| 49| 48| 47| 46| 45| 44| 43| 42| 41| 40| 39| 38| 37| 36| 35| 34| 33| 32| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|


Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

RSS feed Java FAQ RSS feed Java FAQ News     

    RSS feed Java Forums RSS feed Java Forums

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

Interactive software released under GNU GPL, Code Credits, Privacy Policy