IBM E02HMLL-I Implementation Guide - Page 159

Persisting, information, database, connection, pools

Page 159 highlights

v It is easier to add new records (such as a new routing value paired with a new destination application) when using a database connection because you only have to add a new row to the database; no components have to be modified, and the new pairing is effectively immediate. Adding new associations in Java code, however, is less convenient because you must modify the code of the component, recompile it, and possibly stop and restart it (if the component is a collaboration). You should pause the components of the interface beforehand as well, to ensure that there no transactions are in progress while the component is being compiled, or they may fail. v Performing a lookup in Java code should be faster than making a connection to a database and performing a query, though this depends on how many associations there are that the Java control structure must iterate through. v It is less convenient to migrate an interface that uses a database connection to another environment than it is to migrate an interface that exclusively relies on Java code, because you must remember to migrate not only the map or collaboration that makes the connection, but must also remember to recreate the tables involved in the new environment. Persisting information Some customers want to make information about the operation of the business integration system persistent by storing that information in a database so that it can be referenced for problem resolution or historical analysis. To satisfy this requirement, do the following: 1. Create a database table with as many columns as necessary to store the desired data. 2. Create a database connection pool and database connection in System Manager as described in "Creating database connection pools and database connections" on page 148. 3. In the collaboration template design the logic to do obtain a connection to the database and execute a SQL query that inserts the desired data into the appropriate column. Typically this requirement involves persisting information contained in the business object being processed by the collaboration (such as the primary key of the entity being processed), or information about the system itself (such as the successful processing of a business object request). You can persist business object data like primary key values by using the Business Object Probe feature; for more information, see the Collaboration Development Guide. When not to use database connection pools You should not use database connection pools to connect directly to the database of an application. To interact with an application database you should only use an adapter. Database connections should only be made to databases that do not support an application because adapters use the business logic provided by programming interfaces of the application. If you connect directly to an application database to perform a SQL update statement, for example, then you circumvent any related logic that the API would have performed in response to an update operation. This violates the integrity of the application and the business process. Chapter 8. Configuring database connection pools 147

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302

v
It
is
easier
to
add
new
records
(such
as
a
new
routing
value
paired
with
a
new
destination
application)
when
using
a
database
connection
because
you
only
have
to
add
a
new
row
to
the
database;
no
components
have
to
be
modified,
and
the
new
pairing
is
effectively
immediate.
Adding
new
associations
in
Java
code,
however,
is
less
convenient
because
you
must
modify
the
code
of
the
component,
recompile
it,
and
possibly
stop
and
restart
it
(if
the
component
is
a
collaboration).
You
should
pause
the
components
of
the
interface
beforehand
as
well,
to
ensure
that
there
no
transactions
are
in
progress
while
the
component
is
being
compiled,
or
they
may
fail.
v
Performing
a
lookup
in
Java
code
should
be
faster
than
making
a
connection
to
a
database
and
performing
a
query,
though
this
depends
on
how
many
associations
there
are
that
the
Java
control
structure
must
iterate
through.
v
It
is
less
convenient
to
migrate
an
interface
that
uses
a
database
connection
to
another
environment
than
it
is
to
migrate
an
interface
that
exclusively
relies
on
Java
code,
because
you
must
remember
to
migrate
not
only
the
map
or
collaboration
that
makes
the
connection,
but
must
also
remember
to
recreate
the
tables
involved
in
the
new
environment.
Persisting
information
Some
customers
want
to
make
information
about
the
operation
of
the
business
integration
system
persistent
by
storing
that
information
in
a
database
so
that
it
can
be
referenced
for
problem
resolution
or
historical
analysis.
To
satisfy
this
requirement,
do
the
following:
1.
Create
a
database
table
with
as
many
columns
as
necessary
to
store
the
desired
data.
2.
Create
a
database
connection
pool
and
database
connection
in
System
Manager
as
described
in
“Creating
database
connection
pools
and
database
connections”
on
page
148.
3.
In
the
collaboration
template
design
the
logic
to
do
obtain
a
connection
to
the
database
and
execute
a
SQL
query
that
inserts
the
desired
data
into
the
appropriate
column.
Typically
this
requirement
involves
persisting
information
contained
in
the
business
object
being
processed
by
the
collaboration
(such
as
the
primary
key
of
the
entity
being
processed),
or
information
about
the
system
itself
(such
as
the
successful
processing
of
a
business
object
request).
You
can
persist
business
object
data
like
primary
key
values
by
using
the
Business
Object
Probe
feature;
for
more
information,
see
the
Collaboration
Development
Guide
.
When
not
to
use
database
connection
pools
You
should
not
use
database
connection
pools
to
connect
directly
to
the
database
of
an
application.
To
interact
with
an
application
database
you
should
only
use
an
adapter.
Database
connections
should
only
be
made
to
databases
that
do
not
support
an
application
because
adapters
use
the
business
logic
provided
by
programming
interfaces
of
the
application.
If
you
connect
directly
to
an
application
database
to
perform
a
SQL
update
statement,
for
example,
then
you
circumvent
any
related
logic
that
the
API
would
have
performed
in
response
to
an
update
operation.
This
violates
the
integrity
of
the
application
and
the
business
process.
Chapter
8.
Configuring
database
connection
pools
147