Square type buffer

Hi
How can I generate square or rectangular type buffer for linestring geometry (SDO_TYPE =2002) in Oracle Spatial? The SDO_GEOM.SDO_BUFFER function generates circular type buffer for input geometry.
For example
select SDO_GEOM.SDO_BUFFER(
SDO_GEOMETRY(2002, 32643, NULL,
SDO_ELEM_INFO_ARRAY(1,2,1),
SDO_ORDINATE_ARRAY(0,0, 14,0)), 5, 0.05) geom from dual
This query returns
SDO_GEOMETRY(2003, 32643, NULL, SDO_ELEM_INFO_ARRAY(1, 1005, 4, 1, 2, 2, 5, 2, 1, 7, 2, 2, 11, 2, 1), SDO_ORDINATE_ARRAY(0, 5, -5, 6.1230E-16, 0, -5, 14, -5, 19, -1.225E-15, 14, 5, 0, 5))
But I am expecting following geometry
SDO_GEOMETRY(2003, 32643, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(0, -5, 14, -5, 14, 5, 0, 5, 0, -5))
Please give me a suggestion.
Thanks,
Sujnan
Edited by: sujnan on Oct 1, 2009 5:24 PM

Hi Ivan,
The combination of sdo_aggr_mbr and sdo_geom.sdo_buffer returns bounding box. It is not buffer.
Here is my sample geometry.
select
SDO_GEOMETRY(2002, 32643, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(524351.886, 1440342.99, 524228.217, 1440384.85, 524145.367, 1440433.74, 524079.512, 1440478.38, 524034.9, 1440499.64, 523994.538, 1440514.52, 523962.672, 1440520.89, 523928.682, 1440520.89, 523890.444, 1440518.77, 523843.708, 1440501.76, 523809.719, 1440493.26, 523784.226, 1440491.13, 523748.112, 1440493.26, 523705.625, 1440506.01, 523678.009, 1440510.26, 523633.397, 1440510.26, 523569.666, 1440486.88, 523410.34, 1440374.22, 523386.972, 1440365.72, 523335.987, 1440357.21, 523296.141, 1440361.46, 523230.832, 1440363.59, 523203.215, 1440361.46, 523162.853, 1440348.71, 523105.495, 1440314.7, 523050.262, 1440263.68, 523016.272, 1440219.04, 522986.057, 1440162.83, 522974.002, 1440013.68, 522971.661, 1439989.47, 522931.292, 1439953.33, 522865.969, 1439886.37, 522782.056, 1439809.84, 522742.756, 1439785.4, 522718.326, 1439773.71, 522689.647, 1439766.27, 522673.714, 1439765.2, 522656.719, 1439767.33, 522635.476, 1439773.71, 522611.046, 1439780.08, 522579.181, 1439780.08, 522558.999, 1439777.96, 522545.191, 1439772.64, 522523.947, 1439757.76, 522506.952, 1439745.01, 522486.771, 1439730.13, 522449.595, 1439698.24, 522387.989, 1439632.35, 522355.062, 1439598.34, 522333.818, 1439564.32, 522270.088, 1439465.48, 522199.985, 1439374.07, 522137.316, 1439313.49, 522084.207, 1439262.47, 522036.409, 1439234.84, 522002.419, 1439222.09, 521920.631, 1439204.02, 521852.652, 1439177.45, 521834.595, 1439160.44, 521826.097, 1439151.94, 521814.413, 1439136, 521795.294, 1439099.86, 521722.004, 1438959.56, 521671.019, 1438851.15, 521635.967, 1438748.05, 521610.475, 1438681.09, 521604.102, 1438672.59, 521591.356, 1438653.46, 521546.745, 1438614.13, 521515.941, 1438583.31, 521477.704, 1438539.73, 521426.72, 1438480.21, 521375.735, 1438409, 521349.181, 1438355.86, 521327.937, 1438295.28, 521300.32, 1438200.68, 521282.264, 1438149.66, 521250.399, 1438076.33, 521213.223, 1437997.68, 521177.109, 1437922.21, 521135.153, 1437839.31, 521081.513, 1437716.02, 521009.285, 1437582.1, 520977.42, 1437534.27, 520963.611, 1437517.27, 520951.928, 1437508.76, 520935.995, 1437500.26, 520920.062, 1437492.82, 520903.067, 1437489.63, 520870.14, 1437487.51, 520845.71, 1437482.19, 520831.901, 1437474.75, 520794.194, 1437443.93, 520778.262, 1437438.62, 520750.645, 1437435.43, 520709.22, 1437429.05, 520697.536, 1437424.8, 520689.039, 1437415.23, 520685.852, 1437402.48, 520686.914, 1437392.91, 520694.35, 1437372.72, 520704.971, 1437356.78, 520725.153, 1437329.14, 520736.837, 1437295.13, 520765.516, 1437199.47, 520780.386, 1437144.37, 520789.238, 1437073.83, 520790.704, 1437060.64, 520790.221, 1437031.26, 520786.867, 1436990.75, 520773.028, 1436949.21, 520768.415, 1436901.9, 520766.108, 1436855.74, 520772.452, 1436807.27, 520786.291, 1436765.72, 520824.35, 1436708.02, 520877.401, 1436651.48, 520927.569, 1436585.7, 520939.102, 1436563.77, 520959.861, 1436530.31, 520979.467, 1436508.38, 521040.592, 1436452.99, 521076.344, 1436417.22, 521108.006, 1436392.69))
geom from dual
If I query as per your suggestion
select sdo_aggr_mbr(sdo_geom.sdo_buffer(geom, 10, 0.05)) geom from spl_roads
It returns
SDO_GEOMETRY(2003, 32643, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARRAY(520675.852, 1436382.69, 524361.886, 1440530.89))
But I am expecting the following geometry (I have buffered using fme with buffer style CAP_BUTT).
select
SDO_GEOMETRY(2003, 32643, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(520590.52, 1437051.12, 520590.357, 1437041.16, 520589.531, 1437031.19, 520583.279, 1437012.42, 520573.972, 1436968.62, 520569.359, 1436921.3, 520568.664, 1436911.88, 520566.357, 1436865.72, 520567.799, 1436829.78, 520574.143, 1436781.31, 520582.703, 1436744.06, 520596.543, 1436702.51, 520619.338, 1436655.6, 520657.397, 1436597.9, 520678.493, 1436571.18, 520724.563, 1436522.08, 520758.37, 1436477.75, 520762.095, 1436470.67, 520769.145, 1436458.35, 520789.904, 1436424.88, 520810.772, 1436396.99, 520830.378, 1436375.07, 520845.166, 1436360.18, 520902.624, 1436308.11, 520934.879, 1436275.84, 520953.885, 1436259.09, 520985.547, 1436234.57, 521108.006, 1436392.69, 521230.465, 1436550.82, 521208.837, 1436567.57, 521182.057, 1436594.37, 521174.893, 1436601.19, 521121.553, 1436649.53, 521120.603, 1436650.59, 521112.803, 1436663.16, 521104.576, 1436678.8, 521086.596, 1436706.99, 521036.428, 1436772.76, 521023.258, 1436788.32, 520981.896, 1436832.41, 520968.137, 1436853.27, 520966.76, 1436863.79, 520967.929, 1436887.19, 520969.897, 1436907.38, 520976.616, 1436927.54, 520986.185, 1436974.25, 520989.539, 1437014.75, 520990.194, 1437027.97, 520990.677, 1437057.35, 520989.482, 1437082.71, 520988.017, 1437095.9, 520987.682, 1437098.74, 520978.829, 1437169.27, 520973.479,1437196.48, 520958.608, 1437251.58, 520957.091, 1437256.91, 520945.916, 1437294.18, 520956.943, 1437296.25, 521004.684, 1437311.61, 521020.616, 1437319.05, 521030.159, 1437323.82, 521046.092, 1437332.32, 521069.611, 1437347.05, 521081.295, 1437355.56, 521118.874, 1437391.2, 521132.682, 1437408.2, 521143.862, 1437423.38, 521175.728, 1437471.21, 521185.315, 1437487.16, 521257.543, 1437621.08, 521264.908, 1437636.23, 521316.228, 1437754.19, 521355.557, 1437831.9, 521357.514, 1437835.88, 521393.628, 1437911.34, 521394.041, 1437912.21, 521431.217, 1437990.86, 521433.831, 1437996.62, 521465.697, 1438069.96, 521470.804, 1438082.94, 521488.861, 1438133.95, 521492.306, 1438144.63, 521518.431, 1438234.12, 521533.734, 1438277.76, 521547.567, 1438305.44, 521584.272, 1438356.71, 521628.823, 1438408.72, 521661.996, 1438446.53, 521683.741, 1438468.29, 521723.609, 1438503.43, 521757.799, 1438542.57, 521767.467, 1438557.08, 521770.512, 1438561.14, 521797.388, 1438609.93, 521822.88, 1438676.89, 521825.323, 1438683.67, 521856.77, 1438776.17, 521901.209, 1438870.66, 521972.321, 1439006.79, 521974.12, 1439010.19, 521978.958, 1439012.08, 522045.562, 1439026.8, 522072.674, 1439034.83, 522106.665, 1439047.59, 522136.513, 1439061.69, 522184.311, 1439089.33, 522222.76, 1439118.24, 522275.869, 1439169.26, 522276.324, 1439169.7, 522338.993, 1439230.28, 522358.684, 1439252.36, 522428.787, 1439343.76, 522438.178, 1439357.1, 522501.909, 1439455.95, 522503.448, 1439458.37, 522513.478, 1439474.43, 522531.682, 1439493.23, 522534.088, 1439495.76, 522588.167, 1439553.61, 522611.088, 1439573.27, 522631.897, 1439568.88, 522648.892, 1439566.75, 522687.027, 1439565.65, 522702.959, 1439566.71, 522739.869, 1439572.68, 522768.548, 1439580.12, 522804.662, 1439593.3, 522829.092, 1439604.99, 522848.391, 1439615.57, 522887.692, 1439640.02, 522916.824, 1439662.07, 523000.736, 1439738.59, 523009.13, 1439746.71, 523069.726, 1439808.83,523105.051, 1439840.45, 523150.106, 1439899.15, 523170.732, 1439970.22, 523173.073, 1439994.43, 523173.352, 1439997.57, 523182.035, 1440105, 523184.96, 1440110.44, 523198.8, 1440128.62, 523225.677, 1440153.45, 523241.993, 1440163.12, 523282.264, 1440161.81, 523314.788, 1440158.34, 523368.888, 1440159.94, 523419.872, 1440168.44, 523455.359, 1440177.77, 523478.727, 1440186.27, 523525.811, 1440210.92, 523663.47, 1440308.26, 523665.852, 1440309.14, 523690.609, 1440301.7, 523736.36, 1440293.6, 523772.474, 1440291.48, 523800.846, 1440291.83, 523826.338, 1440293.95, 523858.255, 1440299.24, 523892.245, 1440307.74, 523912.095, 1440313.82, 523931.056, 1440320.72, 523934.237, 1440320.89, 523941.548, 1440320.89, 523957.132, 1440315.15, 523979.819, 1440304.34, 524033.148, 1440268.19, 524043.722, 1440261.49, 524126.572, 1440212.6, 524164.101, 1440195.4, 524287.771, 1440153.55, 524351.886, 1440342.99, 524416.001, 1440532.44, 524311.989, 1440567.64, 524252.403,1440602.8, 524191.73, 1440643.93, 524165.543, 1440658.93, 524120.932, 1440680.19, 524104.08, 1440687.29, 524063.717, 1440702.17, 524033.785, 1440710.63, 524001.919, 1440717, 523962.672, 1440720.89, 523928.682, 1440720.89, 523917.581, 1440720.58, 523879.343, 1440718.46, 523822.057, 1440706.71, 523785.089, 1440693.26, 523780.938, 1440692.22, 523763.128, 1440697.57, 523736.056, 1440703.68, 523708.439, 1440707.94, 523678.009, 1440710.26, 523633.397, 1440710.26, 523564.507, 1440698.03, 523500.777, 1440674.64, 523454.195, 1440650.18, 523325.853, 1440559.43, 523317.341, 1440560.33, 523302.658, 1440561.35, 523237.349, 1440563.48, 523215.483, 1440563, 523187.866, 1440560.87, 523142.954, 1440552.17, 523102.591, 1440539.42, 523060.844, 1440520.74, 523003.486, 1440486.73, 522969.792, 1440461.62, 522914.559, 1440410.6, 522891.138, 1440384.84, 522857.149, 1440340.2, 522840.109, 1440313.73, 522809.894, 1440257.52, 522786.707, 1440178.94, 522779.004, 1440083.64, 522726.886, 1440030.21, 522664.088, 1439972.94, 522661.56, 1439973.6, 522611.046, 1439980.08, 522579.181, 1439980.08, 522558.23, 1439978.98, 522538.049, 1439976.86, 522487.163, 1439964.61, 522473.355, 1439959.3, 522430.449, 1439936.46, 522409.206, 1439921.58, 522403.898, 1439917.73, 522387.581, 1439905.48, 522368.082, 1439891.11, 522356.565, 1439881.94, 522319.389, 1439850.06, 522303.496, 1439834.83, 522243.083, 1439770.21, 522211.369, 1439737.45, 522185.432, 1439704.29, 522164.949, 1439671.49, 522106.42, 1439580.72, 522050.312, 1439507.56, 521998.536,1439457.51, 521963.128, 1439423.49, 521950.646, 1439416.28, 521945.434, 1439414.32, 521877.487, 1439399.31, 521847.821, 1439390.29, 521779.841, 1439363.72, 521715.532, 1439323.04, 521697.475, 1439306.04, 521693.128, 1439301.82, 521684.631, 1439293.32, 521664.78, 1439270.16, 521653.096, 1439254.22, 521637.631, 1439229.53, 521618.512, 1439193.39, 521618.025, 1439192.46, 521544.734, 1439052.17, 521541.019, 1439044.68, 521490.034, 1438936.26, 521481.664, 1438915.53, 521447.772, 1438815.84, 521434.97, 1438782.22, 521414.491, 1438764.16, 521405.278, 1438755.51, 521374.475, 1438724.69, 521365.606, 1438715.22, 521327.369, 1438671.64, 521325.812, 1438669.84, 521274.828, 1438610.32, 521264.102, 1438596.64, 521213.118, 1438525.43, 521196.828, 1438498.4, 521170.273, 1438445.26, 521160.447, 1438422.04, 521139.204, 1438361.46, 521135.952, 1438351.33, 521109.908, 1438262.12, 521096.051, 1438222.97, 521068.228, 1438158.93, 521032.61, 1438083.58, 520997.66, 1438010.55, 520956.704, 1437929.62, 520951.758, 1437919.1, 520901.482, 1437803.54, 520837.677, 1437685.24, 520837.021, 1437684.25, 520827.628, 1437682.94, 520803.198, 1437677.62, 520750.843, 1437658.26, 520737.035, 1437650.82, 520707.662, 1437631.17, 520678.79, 1437626.72, 520640.833, 1437616.99, 520629.149, 1437612.74, 520548.012, 1437557.62, 520539.515, 1437548.06, 520495.003, 1437463.71, 520491.817, 1437450.96, 520487.074, 1437380.41, 520488.136, 1437370.84, 520499.232, 1437323.81, 520506.667, 1437303.62, 520527.907, 1437261.83, 520538.529, 1437245.88, 520543.457, 1437238.82, 520545.819, 1437235.59, 520546.399, 1437233.9, 520573.145,1437144.69, 520583.673, 1437105.68, 520590.52, 1437051.12))
geom
from dual
Thanks
Sujnan

Similar Messages

  • Menu bar vs banner type icon

    Hi,
    Instead of using a square type icon on my form, I am using a banner type icon, however, it squeezes the default menu to the far left with little space, so the menu goes vertically... I wonder if there is a way to configure the menu bar so that it goes below the icon instead on the left?
    Also, the icon always show up on the right side of the form, is there a way to configure the icon to show up on the left side?
    Any help or suggestion will be appreciated.
    Thanks.
    Tay

    Tay,
    no you can't change the position of the menu bar icon. Try logo=false (or no, don't no the exact value) in the formsweb.cfg file to get rid of it at all if it is disturbing.
    Frank

  • For which tables we allowed buffer

    hi gurus
    plz inform me
    for which tables we allowed buffer
    thank you
    kals.

    Hi
    <b>Table buffering</b>
    Advantages of buffering
    Concept of buffering
    Buffering types
    Buffer synchronization
    <b>Database access using Buffer concept</b>
    Buffering allows you to access data quicker by letting you
    access it from the application server instead of the database.
    <b>Advantages of buffering</b>
    Table buffering increases the performance when the records of the table are read.
    As records of a buffered table are read directly from the local buffer of the application server on which the accessing transaction is running, time required to access data is greatly reduced. The access improves by a factor of 10 to 100 depending on the structure of the table and on the exact system configuration.
    If the storage requirements in the buffer increase due to further data, the data that has not been accessed for the longest time is displaced. This displacement takes place asynchronously at certain times which are defined dynamically based on the buffer accesses. Data is only displaced if the free space in  the buffer is less than a predefined value or the quality of the access is not satisfactory at this time.
    Entering $TAB in the command field resets the table buffers on the corresponding application server. Only use this command if there are inconsistencies in the buffer. In large systems, it can take several hours to fill the buffers. The performance is considerably reduced during this time.
    <b>Concept of buffering</b>
    <b>The R/3 System manages and synchronizes the buffers on the individual application servers. If an application program accesses data of a table, the database interfaces determines whether this data lies in the buffer of the application server. If this is the case, the data is read directly from the buffer. If the data is not in the buffer of the application server, it is read from the database and loaded into the buffer. The buffer can therefore satisfy the next access to this data.
    The buffering type determines which records of the table are loaded into the buffer of the application server when a record of the table is accessed. There are three different buffering types.
    With full buffering, all the table records are loaded into the buffer when one record of the table is accessed.
    With generic buffering, all the records whose left-justified part of the key is the same are loaded into the buffer when a table record is accessed.
    With single-record buffering, only the record that was accessed is loaded into the buffer.</b><b>Buffering types</b>
    With full buffering, the table is either completely or not at all in the buffer. When a record of the table is accessed, all the records of the table are loaded into the buffer.
    When you decide whether a table should be fully buffered, you must take the table size, the number of read accesses and the number of write accesses into consideration. The smaller the table is, the more frequently it is read and the less frequently it is written, the better it is to fully buffer the table.
    Full buffering is also advisable for tables having frequent accesses to records that do not exist. Since all the records of the table reside in the buffer, it is already clear in the buffer whether or not a record exists.
    The data records are stored in the buffer sorted by table key. When you access the data with SELECT, only fields up to the last specified key field can be used for the access. The left-justified part of the key should therefore be as large as possible for such accesses. For example, if the first key field is not defined, the entire table is scanned in the buffer. Under these circumstances, a direct access to the database could be more efficient if there is a suitable secondary index there.
    With generic buffering, all the records whose generic key fields agree with this record are loaded into the buffer when one record of the table is accessed. The generic key is a left-justified part of the primary key of the table that must be defined when the buffering type is selected. The generic key should be selected so that the generic areas are not too small, which would result in too many generic areas. If there are only a few records for each generic area, full buffering is usually preferable for the table. If you choose too large a generic key, too much data will be invalidated if there are changes to table entries, which would have a negative effect on the performance.
    A table should be generically buffered if only certain generic areas of the table are usually needed for processing.
    Client-dependent, fully buffered tables are automatically generically buffered. The client field is the generic key. It is assumed that not all of the clients are being processed at the same time on one application server. Language-dependent tables are a further example of generic buffering. The generic key includes all the key fields up to and including the language field.
    The generic areas are managed in the buffer as independent objects. The generic areas are managed analogously to fully buffered tables. You should therefore also read the information about full buffering.
    Single-record buffering is recommended particularly for large tables in which only a few records are accessed repeatedly with SELECT SINGLE. All the accesses to the table that do not use SELECT SINGLE bypass the buffer and directly access the database.
    If you access a record that was not yet buffered using SELECT SINGLE, there is a database access to load the record. If the table does not contain a record with the specified key, this record is recorded in the buffer as non-existent. This prevents a further database access if you make another access with the same key
    You only need one database access to load a table with full buffering, but you need several database accesses with single-record buffering. Full buffering is therefore generally preferable for small tables that are frequently accessed.
    <b>Synchronizing local buffers</b>
    The table buffers reside locally on each application server in the system. However, this makes it necessary for the buffer administration to transfer all changes made to buffered objects to all the application servers of the system.
    If a buffered table is modified, it is updated synchronously in the buffer of the application server from which the change was made. The buffers of the whole network, that is, the buffers of all the other application servers, are synchronized with an asynchronous procedure.
    Entries are written in a central database table (DDLOG) after each table modification that could be buffered. Each application server reads these entries at fixed time intervals.
    If entries are found that show a change to the data buffered by this server, this data is invalidated. If this data is accessed again, it is read directly from the database. In such an access, the table can then be loaded to the buffer again.
    <b>Reward if usefull</b>

  • When it is beter to buffer the table

    hi
    when it is beter to buffer the table

    Hi
    <b>Table buffering</b>
    Advantages of buffering
    Concept of buffering
    Buffering types
    Buffer synchronization
    <b>Database access using Buffer concept</b>
    Buffering allows you to access data quicker by letting you
    access it from the application server instead of the database.
    <b>Advantages of buffering</b>
    Table buffering increases the performance when the records of the table are read.
    As records of a buffered table are read directly from the local buffer of the application server on which the accessing transaction is running, time required to access data is greatly reduced. The access improves by a factor of 10 to 100 depending on the structure of the table and on the exact system configuration.
    If the storage requirements in the buffer increase due to further data, the data that has not been accessed for the longest time is displaced. This displacement takes place asynchronously at certain times which are defined dynamically based on the buffer accesses. Data is only displaced if the free space in  the buffer is less than a predefined value or the quality of the access is not satisfactory at this time.
    Entering $TAB in the command field resets the table buffers on the corresponding application server. Only use this command if there are inconsistencies in the buffer. In large systems, it can take several hours to fill the buffers. The performance is considerably reduced during this time.
    <b>Concept of buffering</b>
    The R/3 System manages and synchronizes the buffers on the individual application servers. If an application program accesses data of a table, the database interfaces determines whether this data lies in the buffer of the application server. If this is the case, the data is read directly from the buffer. If the data is not in the buffer of the application server, it is read from the database and loaded into the buffer. The buffer can therefore satisfy the next access to this data.
    The buffering type determines which records of the table are loaded into the buffer of the application server when a record of the table is accessed. There are three different buffering types.
    With full buffering, all the table records are loaded into the buffer when one record of the table is accessed.
    With generic buffering, all the records whose left-justified part of the key is the same are loaded into the buffer when a table record is accessed.
    With single-record buffering, only the record that was accessed is loaded into the buffer.
    <b>Buffering types</b>
    With full buffering, the table is either completely or not at all in the buffer. When a record of the table is accessed, all the records of the table are loaded into the buffer.
    When you decide whether a table should be fully buffered, you must take the table size, the number of read accesses and the number of write accesses into consideration. The smaller the table is, the more frequently it is read and the less frequently it is written, the better it is to fully buffer the table.
    Full buffering is also advisable for tables having frequent accesses to records that do not exist. Since all the records of the table reside in the buffer, it is already clear in the buffer whether or not a record exists.
    The data records are stored in the buffer sorted by table key. When you access the data with SELECT, only fields up to the last specified key field can be used for the access. The left-justified part of the key should therefore be as large as possible for such accesses. For example, if the first key field is not defined, the entire table is scanned in the buffer. Under these circumstances, a direct access to the database could be more efficient if there is a suitable secondary index there.
    With generic buffering, all the records whose generic key fields agree with this record are loaded into the buffer when one record of the table is accessed. The generic key is a left-justified part of the primary key of the table that must be defined when the buffering type is selected. The generic key should be selected so that the generic areas are not too small, which would result in too many generic areas. If there are only a few records for each generic area, full buffering is usually preferable for the table. If you choose too large a generic key, too much data will be invalidated if there are changes to table entries, which would have a negative effect on the performance.
    A table should be generically buffered if only certain generic areas of the table are usually needed for processing.
    Client-dependent, fully buffered tables are automatically generically buffered. The client field is the generic key. It is assumed that not all of the clients are being processed at the same time on one application server. Language-dependent tables are a further example of generic buffering. The generic key includes all the key fields up to and including the language field.
    The generic areas are managed in the buffer as independent objects. The generic areas are managed analogously to fully buffered tables. You should therefore also read the information about full buffering.
    Single-record buffering is recommended particularly for large tables in which only a few records are accessed repeatedly with SELECT SINGLE. All the accesses to the table that do not use SELECT SINGLE bypass the buffer and directly access the database.
    If you access a record that was not yet buffered using SELECT SINGLE, there is a database access to load the record. If the table does not contain a record with the specified key, this record is recorded in the buffer as non-existent. This prevents a further database access if you make another access with the same key
    You only need one database access to load a table with full buffering, but you need several database accesses with single-record buffering. Full buffering is therefore generally preferable for small tables that are frequently accessed.
    <b>Synchronizing local buffers</b>
    The table buffers reside locally on each application server in the system. However, this makes it necessary for the buffer administration to transfer all changes made to buffered objects to all the application servers of the system.
    If a buffered table is modified, it is updated synchronously in the buffer of the application server from which the change was made. The buffers of the whole network, that is, the buffers of all the other application servers, are synchronized with an asynchronous procedure.
    Entries are written in a central database table (DDLOG) after each table modification that could be buffered. Each application server reads these entries at fixed time intervals.
    If entries are found that show a change to the data buffered by this server, this data is invalidated. If this data is accessed again, it is read directly from the database. In such an access, the table can then be loaded to the buffer again.
    <b>Using buffered tables improves the performance considerably.</b>
    Bypassing the buffer increases the network considerably
    SELECT SINGLE * FROM T100 INTO T100_WA
      BYPASSING BUFFER
      WHERE     SPRSL = 'D'
            AND ARBGB = '00'
            AND MSGNR = '999'.
    The above mentioned code can be more optimized by using the following code
    SELECT SINGLE * FROM T100  INTO T100_WA
      WHERE     SPRSL = 'D'
            AND ARBGB = '00'
            AND MSGNR = '999'.
    <b>Optimizing the load of the database</b>
    <b>Using table buffering</b>
         Using buffered tables improves the performance considerably. Note that in some cases a statement can not be used with a buffered table, so when using these statements the buffer will be bypassed. These statements are:
    Select DISTINCT
    ORDER BY / GROUP BY / HAVING clause
    Any WHERE clause that contains a sub query or IS NULL expression
    JOIN s
    A SELECT... FOR UPDATE
         If you wan t to explicitly bypass the buffer, use the BYPASS BUFFER addition to the SELECT clause.
    <b>Reward if useful</b>

  • XModem via TCP for Java

    I am sure that many of you experienced developers have read requests in the past concerning implmentation of Ward Christenen's XModem protocol over a TCP socket. If not, well... you are about to...
    This is a major hack... but it is starting to come together... thanks to Fred Potter for his source code to start this project...
    Objective:
    Basically, I want to create a console application which accepts an incoming connection and starts the receive mode for a XModem file transfer. I am using CGTerm (for Commodore retrocomputing) but can test with HyperTerminal as well...
    The user who connects to the server selects SEND and the FILE to send for a XModem file transfer... and the transfer begins...
    The incoming blocks of 128 bytes are written to a file
    After the transfer is over the server disconnects the client terminal.
    Here is what I have so far:
    import java.net.*;
    import java.lang.*;
    import java.io.*;
    // X-Modem Server implementation via TCP/IP socket
    public class XServer {
    public static FileWriter fw;
    public static void main(String[] args) throws IOException {
    // define the file
    try {   
    fw = new FileWriter("filename.txt");
    } catch (Exception e) {
    System.out.println(e);
    System.exit(0);
    int port = Integer.parseInt(args[0]);
    ServerSocket server = new ServerSocket(port);
    System.out.println("X-Server v1.0 - waiting for connection");
    Socket client = server.accept();
    // Handle a connection and exit.
    try {
    InputStream inputStream = client.getInputStream();
    OutputStream outputStream = client.getOutputStream();
    new PrintStream(outputStream).println("Go to send file mode!"); // sent to client
    System.out.println("Ready to receive file via X-Modem...");
    * BEGIN TRANSFER HERE!
    // set the debug flag
    XModem.debug = true;
    * Here we are instantiating a new InputStream that represents the remote
    * file that we are receiving. In this single line we are attempting to
    * start the flow.
    * Behind The Scenes: We're sending a NAK across the serial line repeatedly
    * until we finaly start seeing the data flow. If we don't see the data
    * flow, then we throw an exception.
    System.out.println("Sending NAK to start receive mode...");
    InputStream incomingFile;
    try {
    incomingFile = new XModemRXStream(inputStream, outputStream);
    } catch (IOException e) {
    System.out.println("ERROR! Unable to start file transfer!");
    e.printStackTrace();
    return;
    System.out.println("Starting file transfer...");
    * Here we are reading from the incoming file, byte by byte, and printing out.
    * Behind The Scenes: Internally, the read() method is handling the task of
    * asking for the next data block from the remote computer, processing it (i.e.
    * parsing, running checksums), and then putting it in an internal buffer. Not
    * all calls to read() will request a new data block as each block contains at
    * least 128 bytes of data. Sometimes you will only hit the buffer.
    try {
    for (;;) {
    int c = incomingFile.read();
    if (c==-1)
    break; // End of File
    // print character / byte
    System.out.print(c+",");
    // write to file
    try {       
    //System.out.print(".");
    fw.write(c);
    } catch (Exception e) {
    System.out.println(e);
    System.exit(0);
    } catch (IOException e) {
    System.out.println("error while reading the incoming file.");
    e.printStackTrace();
    return;
    // done
    System.out.println("File sent.");
    new PrintStream(outputStream).println("");
    new PrintStream(outputStream).println("transfer successful!");
    } finally {
    //client.close();
    // save the file
    try {   
    fw.close();
    System.out.println("file saved.");
    } catch (Exception e) {
    System.out.println(e);
    System.exit(0);
    * XModem keeps track of settings that the Receive and Transmit Stream classes will
    * reference.
    * <p>Copyright: Copyright (c) 2004</p>
    * @author Fred Potter
    * @version 0.1
    class XModem {
    public static boolean debug = false;
    * XModemRXStream is an easy to use class for receiving files via the XModem protocol.
    * @author Fred Potter
    * @version 0.1
    class XModemRXStream
    extends InputStream {
    // CONSTANTS
    private static final int SOH = 0x01;
    private static final int EOT = 0x04;
    private static final int ACK = 0x06;
    private static final int NAK = 0x15;
    private static final int CAN = 0x18;
    private static final int CR = 0x0d;
    private static final int LF = 0x0a;
    private static final int EOF = 0x1a;
    // block size - DON'T CHANGE - I toyed with the idea of adding 1K support but the code is NOT there yet.
    private static final int bs = 128;
    // PRIVATE STUFF
    private int ebn; // expected incoming block #
    private byte[] data; // our data buffer
    private int dataPos; // our position with the data buffer
    private InputStream in;
    private OutputStream out;
    * Creates a new InputStream allowing you to read the incoming file. All of the XModem
    * protocol functions are handled transparently.
    * As soon as this class is instantiated, it will attempt to iniatate the transfer
    * with the remote computer - if unsuccessful, an IOException will be thrown. If it
    * is successful, reading may commense.
    * NOTE: It is important not to wait too long in between calls to read() - the remote
    * computer will resend a data block if too much time has passed or even just give up
    * on the transfer altogether.
    * @param in InputStream from Serial Line
    * @param out OutputStream from Serial Line
    public XModemRXStream(InputStream in, OutputStream out) throws
    IOException {
    this.in = in;
    this.out = out;
    // Initiate the receive sequence - basically, we send a NAK until the data
    // starts flowing.
    init:for (int t = 0; t < 10; t++) {
    if (XModem.debug) {
    System.out.println("Waiting for response [ try #" + t + " ]");
    long mark = System.currentTimeMillis();
    out.write(NAK);
    // Frequently check to see if the data is flowing, give up after a couple seconds.
    for (; ; ) {
    if (in.available() > 0) {
    break init;
    try {
    Thread.sleep(10);
    catch (Exception e) {}
    if (System.currentTimeMillis() - mark > 2000) {
    break;
    // We have either successfully negotiated the transfer, OR, it was
    // a failure and timed out. Check in.available() to see if we have incoming
    // bytes and that will be our sign.
    if (in.available() == 0) {
    throw new IOException();
    // Initialize some stuff
    ebn = 1; // the first block we see should be #1
    data = new byte[bs];
    dataPos = bs;
    * Reads the next block of data from the remote computer. Most of the real XModem protocol
    * is encapsulated within this method.
    * @throws IOException
    private synchronized void getNextBlock() throws IOException {
    if (XModem.debug) {
    //System.out.println("Getting block #" + ebn);
    // Read block into buffer. There is a 1 sec timeout for each character,
    // otherwise we NAK and start over.
    byte[] buffer;
    recv:for (; ; ) {
    buffer = new byte[bs + 4];
    for (int t = 0; t < 10; t++) {
    System.out.println("\nReceiving block [ #" + ebn + " ]");
    // Read in block
    buffer = new byte[buffer.length];
    for (int i = 0; i < buffer.length; i++) {
    int b = readTimed(1);
    // if EOT - don't worry about the rest of the block.
    if ( (i == 0) && (b == EOT)) {
    buffer[0] = (byte) (b & 0xff);
    break;
    // if CAN - the other side has cancelled the transfer
    if (b == CAN) {
    throw new IOException("cancelled");
    if (b < 0) {
    if (XModem.debug) {
    System.out.println("Time out... NAK'ing");
    out.write(NAK);
    continue recv;
    else {
    buffer[i] = (byte) (b & 0xFF);
    break;
    int type = buffer[0] & 0xff; // either SOH or EOT
    if (type == EOT) {
    if (XModem.debug) {
    System.out.println("EOT!");
    out.write(ACK);
    break;
    int bn = buffer[1] & 0xff; // block number
    int bnc = buffer[2] & 0xff; // one's complement to block #
    if (
    (bn != ebn) && (bn != (ebn - 1)) ||
    (bn + bnc != 255)) {
    if (XModem.debug) {
    System.out.println("NAK'ing type = " + type + " bn = " + bn +
    " ebn = " +
    ebn + " bnc = " + bnc);
    out.write(NAK);
    continue recv;
    byte chksum = buffer[ (buffer.length - 1)];
    byte echksum = 0;
    for (int i = 3; i < (buffer.length - 1); i++) {
    echksum = (byte) ( ( (echksum & 0xff) + (buffer[i] & 0xff)) & 0xff);
    if (chksum != echksum) {
    out.write(NAK);
    continue recv;
    out.write(ACK);
    if (ebn == 255) {
    ebn = 0;
    else {
    ebn++;
    break;
    // We got our block, now save it in our data buffer.
    data = new byte[bs];
    for (int i = 3; i < (buffer.length - 1); i++) {
    data[(i - 3)] = buffer;
    dataPos = 0;
    public synchronized int read() throws IOException {
    // If at the end of our buffer, refill it.
    if (dataPos == bs) {
    try {
    getNextBlock();
    catch (IOException e) {
    throw new IOException();
    // If we're still at end of buffer, say so.
    if ( dataPos == bs) {
    return -1;
    int d = data[dataPos];
    if (d == EOF)
    return -1;
    dataPos++;
    return d;
    * A wrapper around the native read() call that provides the ability
    * to timeout if no data is available within the specified timeout value.
    * @param timeout timeout value in seconds
    * @throws IOException
    * @return int an integer representing the byte value read.
    private int readTimed(int timeout) throws IOException {
    long start = System.currentTimeMillis();
    for (; ; ) {
    if (in.available() > 0) {
    return (in.read());
    try {
    Thread.sleep(10);
    catch (InterruptedException ex) {
    //if (System.currentTimeMillis() - start > timeout * 1000) {
    if (System.currentTimeMillis() - start > timeout * 5000) {
    return -1;
    Here was the output...
    Original file:
    (Commodore CBM SEQ file exported to PC using DirMaster)
    ��
    � �
    � ��� �� �� ��� ��
    � �� �� ���� �� ��� ��
    � ��� ����������������������������������������������
    �� ����� ������� ����� �� ����� ������ ����� ���
    � �� ������ ������ ��� ��� �� ��� ���� �� ������
    � � ���
    ����
    � � ��OWERED BY �OLOR 64 ��� V8
    �UNNING �ETWORK64 V1.26A

    �UPPORTING 38400 �AUD �ATES
    �����/����/�������

    �ESTING �CHO-�ET V1 BETA

    �EATURING �ESSAGES, �ILES,
    �ET�AIL, AND �NLINE �AMES!
    �YS�P: � � � � � � � � �

    �RESS ANY KEY TO LOGIN\C�
    The result when the file was uploaded and received by my XServer:
    ? ? ??OWERED BY ?OLOR 64 ??? V8
    ?UNNING ?ETWORK64 V1.26A
    ?UPPORTING 38400 ?AUD ?ATES
    ?ESTING ?CHO-?ET V1 BETA
    ?EATURING ?ESSAGES, ?ILES,
    ?ET?AIL, AND ?NLINE ?AMES!
    ?YS?P: ? ? ? ? ? ? ? ? ?
    ?RESS ANY KEY TO LOGIN\C?
    The result is different!
    Can someone help me along here... I have been trying to figure out how to do this for approx. a year or so... it has been a very slow process.
    I could use a guru to help me out so I can write the upload and download routines for my Commodore BBS PETSCII Emulation Server.
    Visit http://www.retrogradebbs.com for details.
    Thanks.
    Please help out a dedicated developer who is in over his head...
    -Dave

    Ok. Fair enough. What about general information about Xmodem. This is a hard project because of how obscure the legacy technology is that I am having to implement using Java and MySQL.
    I have two major issues which I have to figure out how to troubleshoot and debug, if possible.
    1. The 23+ blocks exception when a file is being received
    2. The exception which is thrown immediately if I try to receive a binary file instead of an ASCII file.
    I read that telnet is a 7-bit technology and that is why Xmodem, which is an 8-bit technology is not that popular as a viable protocol via telnet, whereas Kermit is, since it was developed for 7-bit systems, i.e. mainframes and minicomputers.
    Is this correct?
    If that is the case, why does www.serio.com have a viable X-Y-ZModem library available (for several hundred $$$ of course) which can be used with both RS-232 serial ports and TCP socket ports? Obviously, it can be done. They are the ONLY company with this library for sale for Java to do this. I cannot justify that $$$ amount for a mere hobby (writing the BBS emulation server for supporting Commodore PETSCII (CG) callers via CGTerm or a native C-64 terminal program using Jim Brain's TCPSER middleware, which emulates a Hayes modem via telnet for telBBSing/retrocomputing.
    I really want to learn how to implement a file transfer protocol, since back in the 80s, I used Xmodem, Punter, Y/Z Modem, etc., a lot to upload and download files via modem at baud rates of 2400, 14.4, 19.2, and 38.4, respectively.
    It's fun to learn how the old skool gurus of telecommunications technology did it. It is one thing to run a BBS which supports these technologies and features, and it is an entirely other thing to learn how to design and develop them yourself for implementation into a project such as I taken on.
    It CAN be done. It WILL be done. However, I have just started my exhaustive research on how it needs to be done. I have read up as much as I could on XModem by Ward C., the father of the protocol.
    But, I have no information to help me figure out why the communications are acting as they do so far.
    Can someone please download the xserver.zip file on my website at:
    www.retrogradebbs.com/projects/xserver.zip
    Compile it. Run it. Connect using HyperTerminal, Netrunner, or another telnet terminal emulation program which supports Xmodem file transfers using WinSock.
    See what happens. With finals due in the next two days, this project will have to be put on hold until after I submit my two final projects.
    If anyone knows what needs to be done to support both ASCII and BINARY file transfers via Xmodem via a socket instead of a modem with RTS/CTS hardware flow control, please respond.
    I know for a fact that this can be done.
    - Dave

  • How to put graphics into a JViewport?

    Hi,
    I'm trying to make a simple game, where a block can move around in a 30x30 grid with collision detection. So far, it works alright, but I want the window to hold only 10x10 and for the block that is moving to stay at the center while the painted background moves around. The program reads a .dat file to get the world.
    So is there a way to use the background world Ive painted and put it into a viewport so that it will scroll when the keys are hit to move? Also I'd like to make the block stay at the center of the screen, unless it's at a corner.
    Hopefully this makes sense and someone can help. Thanks.
    Here's my code:
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.io.*;
    public class SmallWorld extends JPanel
                              implements KeyListener,
                                         ActionListener {
         //WORLD
         String[][] worldArray = new String[30][30];
         private static Color redBlock = new Color(255,0,0,255);
         private static Color whiteBlock = new Color(255,255,255,150);
         private static Color blackBlock = new Color(0,0,0,150);
         boolean keyUP = false;
         boolean keyDOWN = false;
         boolean keyLEFT = false;
         boolean keyRIGHT = false;
         //Starting coordinates
         int blockPositionX = 1;
         int blockPositionY = 1;
         JTextField typingArea;
         JViewport viewable;
        public SmallWorld() {
            super( );
              createWorld();     
            typingArea = new JTextField(20);
            typingArea.addKeyListener(this);
              typingArea.setEditable( false );
              add(typingArea);
         public void paintComponent(Graphics g) {
              super.paintComponent(g);
              String type = "";
              for (int i = 0; i < 30; i++) {
                   for (int j = 0; j < 30; j++) {
                        type = worldArray[i][j];
                             if ( type.equals("1") )
                                  g.setColor(redBlock);
                                  g.fillRect( (j * 50),(i * 50),50,50 );
                             else {
                                  g.setColor(whiteBlock);
                                  g.fillRect( (j * 50),(i * 50),50,50 );          
              g.setColor(blackBlock);
              g.fillRect( (blockPositionX * 50),(blockPositionY * 50),50,50 );     
         //Get the world from the DAT file and translate it into a 2d array to be used by paintComponent
         public void createWorld() {
            String getData = null;
              int countRow = 0;
            try {
                   FileReader fr = new FileReader("world.dat");
                   BufferedReader br = new BufferedReader(fr);
                   getData = new String();
                   while ((getData = br.readLine()) != null) {
                  if(countRow < 30) {
                        for (int i = 0; i < 30; i++) {
                             String temp = "" + getData.charAt(i);
                             worldArray[countRow] = temp;
                        countRow++;
    } catch (IOException e) {
    // catch possible io errors from readLine()
    System.out.println("Uh oh, got an IOException error!");
    e.printStackTrace();
         //Move Block around the world
         public void moveBlock() {
              Graphics g = this.getGraphics();
              Point pt = new Point();
              pt.x = blockPositionX * 50;
              pt.y = blockPositionY * 50;
              if (keyUP) {
                   g.setColor(blackBlock);
              g.fillRect( (blockPositionX * 50),(blockPositionY * 50),50,50 );
              if (keyDOWN) {
                   g.setColor(blackBlock);
              g.fillRect( (blockPositionX * 50),(blockPositionY * 50),50,50 );
              if (keyLEFT) {
                   g.setColor(blackBlock);
              g.fillRect( (blockPositionX * 50),(blockPositionY * 50),50,50 );
              if (keyRIGHT) {
                   g.setColor(blackBlock);
              g.fillRect( (blockPositionX * 50),(blockPositionY * 50),50,50 );
         //check for collisions with blocks
         public boolean checkCollision(int row, int col) {
              if ( worldArray[col][row].equals("1") ) {
                   return true;
              else {
                   return false;
    //If key typed, put action here. none for now
    public void keyTyped(KeyEvent e) {
    /** Handle the key pressed event from the text field. */
    public void keyPressed(KeyEvent e) {
    updateView( e );
    //If key released, put action here. none for now
    public void keyReleased(KeyEvent e) {
    /** Handle the button click. */
    public void actionPerformed(ActionEvent e) {
         //Update the view of the window based on which button is pressed
         protected void updateView( KeyEvent e ) {
              //if UP is pressed
              if ( e.getKeyCode() == 38 ) {
                   keyUP = true;
                   if ( checkCollision( blockPositionX, blockPositionY - 1 ) == false ) {
                        blockPositionY = blockPositionY - 1;
                        this.repaint();
                        moveBlock();
                   keyUP = false;
              //if DOWN is pressed
              if ( e.getKeyCode() == 40 ) {
                   keyDOWN = true;
                   if ( checkCollision( blockPositionX, blockPositionY + 1 ) == false ) {
                        blockPositionY = blockPositionY + 1;
                        this.repaint();
                        moveBlock();
                   keyDOWN = false;
              //if LEFT is pressed
              if ( e.getKeyCode() == 37 ) {
                   keyLEFT = true;
                   if ( checkCollision( blockPositionX - 1, blockPositionY ) == false ) {
                        blockPositionX = blockPositionX - 1;
                        this.repaint();
                        moveBlock();
                   keyLEFT = false;
              //if RIGHT is pressed
              if ( e.getKeyCode() == 39 ) {
                   keyRIGHT = true;
                   if ( checkCollision( blockPositionX + 1, blockPositionY ) == false ) {
                        blockPositionX = blockPositionX + 1;
                        this.repaint();
                        moveBlock();
                   keyRIGHT = false;
    * Create the GUI and show it. For thread safety,
    * this method should be invoked from the
    * event-dispatching thread.
    private static void createAndShowGUI() {
    //Create and set up the window.
    JFrame frame = new JFrame("SmallWorld");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //Create and set up the content pane.
    JComponent newContentPane = new SmallWorld();
    newContentPane.setOpaque(true); //content panes must be opaque
    frame.setContentPane(newContentPane);
    //Display the window.
    frame.pack();
         frame.setSize(500,520);
    frame.setVisible(true);
    public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    createAndShowGUI();
    The world DAT file:
    111111111111111111111111111111
    100010001010001000101000100011
    100010001010001000101000100011
    100011101010000000001000000001
    100010000010000000001000000001
    100110000010000000001000000001
    100000000010000000001000000001
    111100011110000000001000000001
    100000000110001110111000111011
    100000000000001110111000111011
    100000000000000000001000000001
    100010001110000000000000000001
    100010001110001110111000111011
    100011101100000000000000000011
    100010000110001110111000111011
    100110000100000000000000000011
    100000000110000000001000000001
    111100011100000000000000000011
    100000000100000000000000000011
    100000000010000000000000000001
    100000000010000000000000000001
    100010000000000000000000000001
    100010000000001110111000111011
    100011101110000000011000000001
    100010000110000000011000000001
    100110000110000000001000000001
    100000000110001110111000111011
    111100011110000000011000000001
    100000000110000000011000000001
    100000000011111111111111111111

    I know this is an old posting, but I just saw another question similiar to this and I still have my old code lying around that incorporates most of the suggestions made in this posting. So I thought I'd post my code here in case anybody wants to copy/paste the code. You will still need to use the DAT file provide above as well as provide icons to represent the floor and wall.
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    public class SmallWorld extends JPanel implements KeyListener, ActionListener
         //WORLD
         String[][] worldArray = new String[30][30];
         //Block colors
         private static Color redBlock = new Color(255,0,0,255);
         private static Color whiteBlock = new Color(255,255,255,255);
         private static Color blackBlock = new Color(0,0,0,150);
         //World images
    //     JLabel wall = new JLabel( new ImageIcon("wall.gif") );
    //     JLabel floor = new JLabel( new ImageIcon("floor.gif") );
         ImageIcon wallIcon = new ImageIcon("dukewavered.gif");
         ImageIcon floorIcon = new ImageIcon("copy16.gif");
         //Starting coordinates
         int blockPositionX = 1;
         int blockPositionY = 1;
         //Typing area to capture keyEvent
         JTextField typingArea;
         //Viewable area
         JViewport viewable;
         String type = "";
         JLayeredPane layeredPane;
         JPanel worldBack;
         JPanel panel;
         JPanel player;
         Dimension worldSize = new Dimension(1500, 1500);
         public SmallWorld() {
              super( );
              createWorld();
              layeredPane = new JLayeredPane();
              add(layeredPane);
              layeredPane.setPreferredSize( worldSize );
              worldBack = new JPanel();
              layeredPane.add(worldBack, JLayeredPane.DEFAULT_LAYER);
              worldBack.setLayout( new GridLayout(30, 30) );
              worldBack.setPreferredSize( worldSize );
              worldBack.setBounds(0, 0, worldSize.width, worldSize.height);
              worldBack.setBackground( whiteBlock );
              for (int i = 0; i < 30; i++) {
                   for (int j = 0; j < 30; j++) {
                        JPanel square = new JPanel( new BorderLayout() );
                        worldBack.add( square );
                        type = worldArray[i][j];
                        if ( type.equals("1") )
                             square.add( new JLabel(wallIcon) );
                        else
                             square.add( new JLabel(floorIcon) );
              //Draw the player
              player = new JPanel();
              player.setBounds(50, 50, 50, 50);
              player.setBackground( Color.black );
              player.setLocation(50, 50);
              layeredPane.add(player, JLayeredPane.DRAG_LAYER);
              //set where the player starts
    //          panel = (JPanel)worldBack.getComponent( 31 );
    //          panel.add( player );
              //Create the typing area with keyListener, add to window
              typingArea = new JTextField(20);
              typingArea.addKeyListener(this);
              typingArea.setEditable( false );
              add(typingArea);
         //Get the world from the DAT file and translate it into
         //a 2d array to be used by paintComponent
         public void createWorld() {
              String getData = null;
              int countRow = 0;
              try {
                   //Get file
                   FileReader fr = new FileReader("world.dat");
                   BufferedReader br = new BufferedReader(fr);
                   getData = new String();
                   //read each line from file, store to 2d array
                   while ((getData = br.readLine()) != null) {
                        if(countRow < 30) {
                             for (int i = 0; i < 30; i++) {
                                  String temp = "" + getData.charAt(i);
                                  worldArray[countRow] = temp;
                        countRow++;
              } catch (IOException e) {
              System.out.println("Uh oh, got an IOException error!");
              e.printStackTrace();
         //Move Block around the world
         public void moveBlock() {
              Point pt = new Point();
              pt.x = blockPositionX * 50;
              pt.y = blockPositionY * 50;
              int x = Math.max(0, pt.x - 250);
              int y = Math.max(0, pt.y - 250);
              Rectangle r = new Rectangle(x, y, 550, 550);
              scrollRectToVisible( r );
         //check for collisions with blocks
         public boolean checkCollision(int row, int col) {
              if ( worldArray[col][row].equals("1") ) {
                   return true;
              else {
                   return false;
         public void keyTyped(KeyEvent e) {
         public void keyPressed(KeyEvent e) {
              updateView( e );
              e.consume();
         public void keyReleased(KeyEvent e) {
         public void actionPerformed(ActionEvent e) {
         //Update the view of the window based on which button is pressed
         protected void updateView( KeyEvent e ) {
              //if UP
              if ( e.getKeyCode() == 38 ) {
                   if ( checkCollision( blockPositionX, blockPositionY - 1 ) == false ) {
                        blockPositionY = blockPositionY - 1;
                        moveBlock();
                        player.setLocation(blockPositionX *50, blockPositionY*50);
              //if DOWN
              if ( e.getKeyCode() == 40 ) {
                   if ( checkCollision( blockPositionX, blockPositionY + 1 ) == false ) {
                        blockPositionY = blockPositionY + 1;
                        moveBlock();
                        player.setLocation(blockPositionX *50, blockPositionY*50);
              //if LEFT
              if ( e.getKeyCode() == 37 ) {
                   if ( checkCollision( blockPositionX - 1, blockPositionY ) == false ) {
                        blockPositionX = blockPositionX - 1;
                        moveBlock();
                        player.setLocation(blockPositionX *50, blockPositionY*50);
              //if RIGHT
              if ( e.getKeyCode() == 39 ) {
                   if ( checkCollision( blockPositionX + 1, blockPositionY ) == false ) {
                        blockPositionX = blockPositionX + 1;
                        moveBlock();
                        player.setLocation(blockPositionX *50, blockPositionY*50);
         private static void createAndShowGUI() {
              JFrame frame = new JFrame("SmallWorld");
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              JComponent newContentPane = new SmallWorld();
              newContentPane.setPreferredSize( new Dimension(1500, 1500) );
              JScrollPane scrollPane = new JScrollPane( newContentPane );
              scrollPane.setPreferredSize( new Dimension(568, 568) );
              frame.getContentPane().add( scrollPane );
              frame.pack();
              frame.setLocationRelativeTo( null );
              frame.setResizable( false );
              //frame.setSize(500,520);
              frame.setVisible( true );
         public static void main(String[] args) {
              javax.swing.SwingUtilities.invokeLater( new Runnable() {
                   public void run() {
                        createAndShowGUI();

  • Process one set of primary and secondary records at a time

    Need to read and analyze all service lines for every claim
    I wrote these Statements but they are in a never ending state despite of the fact of setting the claims range to one day.
    Thank you for any suggestions.
    Harry
    set serveroutput on
    declare
    v_claim1 varchar2(12):='080010000000';
    v_claim2 varchar2(12):='080019999999';
    fd_claim varchar2(12):=' ';
    mismatch number:=0;
    v_outfile UTL_FILE.FILE_TYPE;
    v_outfile_name constant varchar2(100):= 'prvmm.dat';
    v_outfile_dir constant varchar2(100):= 'AVMED_TEMPDATA';
    w_line varchar2(44);
    v_claim claim.claim_nbr%type;
    buffer varchar2(100);
    status integer;
    cursor get_clm is
    select claim_nbr from claim
    where claim_nbr between v_claim1 and v_claim2
    and rownum < 100
    order by claim_nbr;
    cursor get_srvline is
    select claim_nbr, serv_nbr, aff_nbr from service_x
    where claim_nbr = fd_claim;
    type serv_t is table of get_srvline%rowtype;
    serv serv_t;
    begin
    V_OUTFILE := UTL_FILE.FOPEN(V_OUTFILE_DIR,V_OUTFILE_NAME,'w');
    OPEN get_clm;
    --OPEN get_srvline;
    LOOP
    fetch get_clm into v_claim;
    DBMS_OUTPUT.PUT_LINE(v_claim);
    DBMS_OUTPUT.GET_LINE(buffer,status );
    DBMS_OUTPUT.PUT_LINE('Buffer: '||buffer);
    DBMS_OUTPUT.PUT_LINE('Status: '||to_char(status));
    --while get_clm%found
    --while rownum < 100
    LOOP
    fd_claim:= v_claim;
    OPEN get_srvline;
    fetch get_srvline bulk collect into serv;
    CLOSE get_srvline;
    mismatch:=0;
    FOR i in 1..serv.count LOOP
    if serv(1).aff_nbr <> serv(i).aff_nbr then mismatch:=1;
    end if;
    END loop;
    if mismatch = 1 then
    FOR i in 1..serv.count LOOP
    w_line:=serv(i).claim_nbr||serv(i).serv_nbr||serv(i).aff_nbr;
    UTL_FILE.PUT_LINE(V_OUTFILE,w_line);
    END LOOP;
    end if;
    END LOOP;
    --close get_srvline;
    close get_clm;
    UTL_FILE.FCLOSE(V_OUTFILE);
    DBMS_OUTPUT.PUT_LINE ( serv.count );
    END LOOP;
    END;

    Hi,
    Welcome to the forum!
    Here's your code with some whitspace added, to make it readable:
    set serveroutput on
    declare
         v_claim1 varchar2(12):='080010000000';
         v_claim2 varchar2(12):='080019999999';
         fd_claim varchar2(12):=' ';
         mismatch number:=0;
         v_outfile UTL_FILE.FILE_TYPE;
         v_outfile_name constant varchar2(100):= 'prvmm.dat';
         v_outfile_dir constant varchar2(100):= 'AVMED_TEMPDATA';
         w_line varchar2(44);
         v_claim claim.claim_nbr%type;
         buffer varchar2(100);
         status integer;
         cursor get_clm is
                select claim_nbr from claim
                where claim_nbr between v_claim1 and v_claim2
                and rownum < 100
                order by claim_nbr;
         cursor get_srvline is
                select claim_nbr, serv_nbr, aff_nbr from service_x
                where claim_nbr = fd_claim;
         type serv_t is table of get_srvline%rowtype;
         serv serv_t;
    begin
         V_OUTFILE := UTL_FILE.FOPEN(V_OUTFILE_DIR,V_OUTFILE_NAME,'w');
         OPEN get_clm;
         --OPEN get_srvline;
         LOOP
              fetch get_clm into v_claim;
              DBMS_OUTPUT.PUT_LINE(v_claim);
              DBMS_OUTPUT.GET_LINE(buffer,status );
              DBMS_OUTPUT.PUT_LINE('Buffer: '||buffer);
              DBMS_OUTPUT.PUT_LINE('Status: '||to_char(status));
              --while get_clm%found
              --while rownum < 100
              LOOP
                   fd_claim:= v_claim;
                   OPEN get_srvline;
                   fetch get_srvline bulk collect into serv;
                   CLOSE get_srvline;
                   mismatch:=0;
                   FOR i in 1..serv.count LOOP
                           if serv(1).aff_nbr <> serv(i).aff_nbr then mismatch:=1;
                        end if;
                   END loop;
                   if mismatch = 1 then
                           FOR i in 1..serv.count LOOP
                                w_line:=serv(i).claim_nbr||serv(i).serv_nbr||serv(i).aff_nbr;
                             UTL_FILE.PUT_LINE(V_OUTFILE,w_line);
                        END LOOP;
                   end if;
              END LOOP;
              --close get_srvline;
              close get_clm;
              UTL_FILE.FCLOSE(V_OUTFILE);
              DBMS_OUTPUT.PUT_LINE ( serv.count );
         END LOOP;
    END;The reason why it won't stop is that neither of the two outer LOOPs has any way of stopping.
    If you want to fetch one row from a cursor in a loop, and contine the loop as long as you keep getting rows, then use a cursor FOR loop, like this
    FOR  v_claim  IN get_clm
    LOOP
            DBMS_OUTPUT.PUT_LINE(v_claim);
    END LOOP;You do not need OPEN, FETCH or CLOSE statements when using a cursor FOR loop.
    If you do want to use OPEN, FETCH and CLOSE, then the loop that FETCHes the data should test for %NOTFOUND, and EXIT when it is true, like this:
    OPEN  get_clm
    LOOP
            FETCH  get_clm  INTO  c_claim
            EXIT WHEN get_clm%NOTFOUND;
            DBMS_OUTPUT.PUT_LINE(v_claim);
    END LOOP;
    CLOSE  get_clm;Always format your code to show the range of LOOPs and IF statements.
    When posting on this site, type these 6 characters:
    &#123;code&#125;
    (small letters only, inside curly brackets) before and after formatted text, to preserve spacing.

  • How do you connect a USB MIDI keyboard to iPad Air?

    Hello,
    I can't get my USB keyboards to connect to my iPad Air.  I used to use the camera connection kit with my 1st gen iPad and it worked perfectly.  Now when trying to connect using my camera connector plugged into a lightning to 30 pin adapter with the iPad Air I get no response when trying to use my keyboards with Garageband, etc.  This seems like a step backwards!!!
    Can anyone advise on how to use a USB MIDI keyboard with the iPad Air?
    Thanks,
    Richard

    Same problem here...
    I just read on another forum that someone managed to connect a midi device using a simple converter.
    I have a digital piano with the square type USB connector, bought an adapter to convert the iPad Air's ligtning USB cable's USB end to that square connector, plugged it in, GarageBand did not respond to the Midi input.
    on a macbook pro it works ok, but would be nice to use the iPad now that I bought it...

  • Need a code for finding prime no.s from 0 to 100.

    Hi,
    i need a code for finding prime no.s from 0 to 100.
    Please help me out.
    Regards,
    Santosh Kotra.

    hai santosh,
    here is an example program to find the prime number...........
    EXAMPLE:
    DATA: BEGIN OF primes OCCURS 0,
            number TYPE i,
            exp    TYPE i,
          END OF primes.
    DATA: w_mult TYPE i,
          w_limi TYPE i,
          w_prem TYPE i.
    DATA: w_outp TYPE text132.
    DATA: w_rtime TYPE i,
          w_stime TYPE p DECIMALS 3.
    DEFINE add_part.
      sy-fdpos = strlen( &1 ) + 1.
      &1+sy-fdpos(*) = &2.
      condense &1.
    END-OF-DEFINITION.
    PARAMETERS: p_numb TYPE i,                "number to check
                p_fact TYPE c AS CHECKBOX,    "display components
                p_nbpr TYPE c AS CHECKBOX.    "nb of primes
    START-OF-SELECTION.
      GET RUN TIME FIELD w_rtime.
      IF p_nbpr IS INITIAL OR p_numb LE 12000.
        PERFORM eratostene USING p_numb.
        add_part w_outp p_numb.
        READ TABLE primes WITH KEY number = p_numb.
        IF sy-subrc = 0.
          add_part w_outp 'is prime'.
        ELSE.
          IF p_fact IS INITIAL.
            add_part w_outp 'is not prime'.
          ELSE.
            add_part w_outp '='.
            w_limi = p_numb.
            LOOP AT primes WHERE exp GT 0.
              CHECK primes-number LE w_limi.
              IF w_prem GT 0.
                add_part w_outp '*'.
              ENDIF.
              IF primes-exp GT 1.
                add_part w_outp '('.
                add_part w_outp primes-number.
                add_part w_outp '^'.
                add_part w_outp primes-exp.
                add_part w_outp ')'.
              ELSE.
                add_part w_outp primes-number.
              ENDIF.
              w_limi = w_limi / ( primes-number ** primes-exp ).
              IF w_limi = 1.
                EXIT.
              ENDIF.
              w_prem = 1.
            ENDLOOP.
          ENDIF.
        ENDIF.
        WRITE: / w_outp.
        IF NOT p_nbpr IS INITIAL.
          DESCRIBE TABLE primes LINES sy-tmaxl.
          CLEAR: w_outp.
          add_part w_outp 'Number of primes:'.
          add_part w_outp sy-tmaxl.
          WRITE: / w_outp.
          SKIP.
          LOOP AT primes.
            WRITE: / primes-number.
          ENDLOOP.
        ENDIF.
      ELSE.
        PERFORM factors.
      ENDIF.
      GET RUN TIME FIELD w_rtime.
      w_stime = w_rtime / 1000000.
      SKIP.
      CLEAR: w_outp.
      add_part w_outp 'Calculation time:'.
      add_part w_outp w_stime.
      WRITE: / w_outp.
          FORM eratostene                                               *
    FORM eratostene USING in_number TYPE i.
      DATA: BEGIN OF no_primes OCCURS 0,
              number TYPE i,
            END OF no_primes.
      DATA: cnum TYPE i,
            dnum TYPE i,
            limi TYPE i,
            mult TYPE i,
            puis TYPE i,
            cmod TYPE i.
      IF NOT ( p_fact IS INITIAL AND p_nbpr IS INITIAL ).
        limi = in_number.
      ELSE.
        limi = sqrt( in_number ).
      ENDIF.
      cnum = 2.
      WHILE cnum LE limi.
        READ TABLE no_primes WITH KEY number = cnum.
        IF sy-subrc NE 0.
          primes-number = cnum.
          mult = 2.
          puis = 1.
          dnum = mult * cnum.
          WHILE dnum LE in_number.
            READ TABLE no_primes WITH KEY number = dnum.
            IF sy-subrc NE 0.
              no_primes-number = dnum.
              APPEND no_primes.
            ENDIF.
            IF NOT p_fact IS INITIAL.
              cmod = dnum MOD ( cnum ** puis ).
              IF cmod = 0.
                cmod = in_number MOD ( cnum ** puis ).
                IF cmod = 0.
                  primes-exp = puis.
                  puis = puis + 1.
                ENDIF.
              ENDIF.
            ENDIF.
            mult = mult + 1.
            dnum = mult * cnum.
          ENDWHILE.
          APPEND primes.
          CLEAR: primes.
        ENDIF.
        cnum = cnum + 1.
      ENDWHILE.
    ENDFORM.
          FORM factors                                                  *
    FORM factors.
      DATA: ex_factors TYPE string,
            mod        TYPE i,
            still      TYPE f,
            factor     TYPE i,
            exponent   TYPE i,
            square     TYPE f,
            fac_string TYPE text40,
            exp_string TYPE text40.
      IF p_numb LE 3.
        ex_factors = p_numb.
      ELSE.
        factor = 2.
        still  = p_numb.
        DO.
          CLEAR: exponent.
          mod = still MOD factor.
          WHILE mod = 0.
            exponent = exponent + 1.
            still    = still div factor.
            mod      = still MOD factor.
          ENDWHILE.
          IF exponent EQ 1.
            fac_string = factor.
            CONCATENATE ex_factors '*'  fac_string
                                   INTO ex_factors
                           SEPARATED BY space.
            CONDENSE ex_factors.
          ELSEIF exponent GT 1.
            fac_string = factor.
            exp_string = exponent.
            CONCATENATE ex_factors '* (' fac_string
                                   '^'   exp_string ')'
                                   INTO  ex_factors
                           SEPARATED BY space.
            CONDENSE ex_factors.
          ENDIF.
          factor = factor + 1.
          square = factor ** 2.
          IF square GT still.
            EXIT.
          ENDIF.
        ENDDO.
        IF still GT 1.
          CATCH SYSTEM-EXCEPTIONS convt_overflow = 1.
            fac_string = factor = still.
          ENDCATCH.
          IF sy-subrc NE 0.
            fac_string = still.
          ENDIF.
          CONCATENATE ex_factors '*' fac_string
                                INTO ex_factors
                        SEPARATED BY space.
          CONDENSE ex_factors.
        ENDIF.
        SHIFT ex_factors UP TO '*'.
        SHIFT ex_factors BY 2 PLACES.
      ENDIF.
      WRITE: / p_numb RIGHT-JUSTIFIED.
      IF ex_factors CA '*^'.
        WRITE: '=', ex_factors.
      ELSE.
        WRITE: 'is prime'.
      ENDIF.
    ENDFORM.
    HOPE THIS WILL BE HELPFULL.
    regards
    praba.

  • EJB Primary Key not found in lock manager - Container BUG?

    I have an EJB entity bean whose primary key class implementation is pretty simple, consisting of two strings. For the MOST part, it seems to work properly, but every so often I see the following message in my application server log.
    ####<Sep 17, 2008 10:03:27 AM EDT> <Warning> <JTA> <armantac22> <AdminServer> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1221660207187> <BEA-110401> <Ignoring error in afterCompletion. Object=weblogic.ejb.container.internal.TxManager$TxListener@1906466, Exception=javax.ejb.EJBException: [EJB:010108]The EJB Lock Manager has received an unlock request from EJB:PortfolioMetaData with primary key:[ObjectPK: type: PortMetaData name: PortMetaData]. However, this primary key could not be found in the Lock Manager. This indicates either an EJB container bug, or the equals and hashCode methods for the primary key class:com.armanta.ejb.ObjectPK are implemented incorrectly. Please check the equals and hashCode implementations.
    javax.ejb.EJBException: [EJB:010108]The EJB Lock Manager has received an unlock request from EJB:PortfolioMetaData with primary key:[ObjectPK: type: PortMetaData name: PortMetaData]. However, this primary key could not be found in the Lock Manager. This indicates either an EJB container bug, or the equals and hashCode methods for the primary key class:com.armanta.ejb.ObjectPK are implemented incorrectly. Please check the equals and hashCode implementations.
         at weblogic.ejb.container.locks.ExclusiveLockManager$LockBucket.unlock(ExclusiveLockManager.java:409)
         at weblogic.ejb.container.locks.ExclusiveLockManager.unlock(ExclusiveLockManager.java:170)
         at weblogic.ejb.container.manager.ExclusiveEntityManager.afterCompletion(ExclusiveEntityManager.java:723)
         at weblogic.ejb.container.manager.ExclusiveEntityManager.afterCompletion(ExclusiveEntityManager.java:667)
         at weblogic.ejb.container.internal.TxManager$TxListener.afterCompletion(TxManager.java:984)
         at weblogic.transaction.internal.ServerSCInfo.callAfterCompletions(ServerSCInfo.java:862)
         at weblogic.transaction.internal.ServerTransactionImpl.callAfterCompletions(ServerTransactionImpl.java:2913)
         at weblogic.transaction.internal.ServerTransactionImpl.afterCommittedStateHousekeeping(ServerTransactionImpl.java:2806)
         at weblogic.transaction.internal.ServerTransactionImpl.setCommitted(ServerTransactionImpl.java:2851)
         at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2650)
         at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2570)
         at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:277)
         at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:226)
         at weblogic.ejb.container.internal.BaseEJBHome.postHomeInvoke(BaseEJBHome.java:389)
         at weblogic.ejb.container.internal.EntityEJBHome.findByPrimaryKey(EntityEJBHome.java:408)
         at com.armanta.ejb.portfolio.PortfolioMetaData_a4zvzk_HomeImpl.findByPrimaryKey(PortfolioMetaData_a4zvzk_HomeImpl.java:64)
         at com.armanta.ejb.portfolio.PortfolioMasterBean.getPortfolioMetaData(PortfolioMasterBean.java:313)
         at com.armanta.ejb.portfolio.PortfolioMaster_fmk9e8_EOImpl.getPortfolioMetaData(PortfolioMaster_fmk9e8_EOImpl.java:64)
         at com.armanta.ejb.portfolio.PortfolioMaster_fmk9e8_EOImpl_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
         at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:403)
         at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:56)
         at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:934)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
    I checked the equals and hashCode implementations and nothing pops out at me. Once this happens, the EJB seems to get messed up in the database and I lose information!
    Here is the class implementation along with its superclass. I don't see anything blatant. Sorry for the lack of indentation, my original post was indented.
    Thanks
    Eric
    public class ObjectPK extends ArmantaPK {
         private String type;
         private String name;
         private ObjectPK() {
              super();
         public ObjectPK(String type, String name) {
              super();
              this.type = type;
              this.name = name;
         public String getName() {
              return name;
         public String getType() {
              return type;
         public String toString() {
              StringBuffer buffer = new StringBuffer();
              buffer.append("[ObjectPK:");
              buffer.append(" type: ");
              buffer.append(type);
              buffer.append(" name: ");
              buffer.append(name);
              buffer.append("]");
              return buffer.toString();
         * Returns <code>true</code> if this <code>ObjectPK</code> is the same as the o argument.
         * @return <code>true</code> if this <code>ObjectPK</code> is the same as the o argument.
         public boolean equals(Object o) {
              if (this == o) {
                   return true;
              if (!super.equals(o)) {
                   return false;
              if (o == null) {
                   return false;
              if (o.getClass() != getClass()) {
                   return false;
              ObjectPK castedObj = (ObjectPK) o;
              return ((this.type == null ? castedObj.type == null : this.type
                   .equals(castedObj.type)) && (this.name == null
                   ? castedObj.name == null
                   : this.name.equals(castedObj.name)));
         * Override hashCode.
         * @return the Objects hashcode.
         public int hashCode() {
              int hashCode = super.hashCode();
              hashCode = 31 * hashCode + (type == null ? 0 : type.hashCode());
              hashCode = 31 * hashCode + (name == null ? 0 : name.hashCode());
              return hashCode;
         public Object clone() {
              ObjectPK inst = new ObjectPK();
              inst.type = this.type == null ? null : new String(this.type);
              inst.name = this.name == null ? null : new String(this.name);
              return inst;
    public abstract class ArmantaPK implements Serializable, Cloneable, Comparable {
         // Enforce compatability with future versions
         private static final long serialVersionUID = 1980721424128862564L;
         // Cache the hash code
         private transient int hash = 0;
         * Clones a primary key. Note that this is not a deep copy.
         * @return the cloned primary key
         public Object clone() throws CloneNotSupportedException {
              ArmantaPK newKey = (ArmantaPK) super.clone();
              newKey.hash = 0;
              return newKey;
         * Compare the specified object with this key for equality.
         * Implementations should return <tt>true</tt>
         * if and only if the specified object is also a key
         * of the same class and all corresponding attributes in the keys are
         * <i>equal</i>.
         * @param other the object to be compared for equality with this key.
         * @return <tt>true</tt> if the specified object is equal to this key.
         public boolean equals(Object other) {
              return other instanceof ArmantaPK;
         * This implementation only returns an empty String.
         * @return String
         public String toString() {
              return "";
         * Return the hash code value for this key. Implemented to call the
         * key's <code>computeHash</code> method and cache the result for
         * faster operation. Classes extending <code>ArmantaPK</code> should
         * only implement <code>computeHash</code>.
         * @return int
         public int hashCode() {
              if (hash == 0) {
                   hash = computeHash();
              return hash;
         * @y.exclude
         * Compute a hash code for this key. This is the method that should
         * be overridden by sub-classes.
         * @return int
         protected int computeHash() {
              return 0;
         * @y.exclude
         * After called, will force the hash code to get recomputed.
         public void rehash() {
              hash = 0;
         * Compares this <tt>ArmantaPK</tt> to another object by comparing
         * their string representations.
         * @return an integer based upon comparing the <tt>ArmantaPK</tt>s string
         * representations
         public int compareTo(Object o) {
    return toString().compareTo(o.toString());
    }

    We are experiencing a similar error after upgrading 9.2 to 9.2 MP3. We do not want to upgrade to 10g at this time. Is there a patch we can download with the fix?

  • Large photo book project - lots of questions

    I have 680+ pictures I want to put in a Wirebound photo book.
    (It's a book of Matchbook covers, arranged by dominant color.)
    I have the pictures grouped in folders (according to major color).
    Iphoto only seems to import ALL the photos and removes the folders and grouping.
    The only grouping I have available is "Last Import", "Last 12 Months" and "Recent" (which are not the pics).
    1) Is there any way to maintain the folder structure so I can import the pictures into the photo book in the order I would like?
    The autoflow feature doesn't work because it will group all the pics (without folder organization) into the book, organized by name.
    3) How can I find out the dimensions of each photo "slot" so I can reduce pictures to fit in the slot without losing some of the image?
    For example, since there are so many pictures, I chose the 16 photos/page option but the only layout available is a "square" type slot. Some of the horizontal images (long matchbooks) get chopped off and the image-size slider is already at the smallest setting. So: what's the size for each slot?
    4) Isn't there some sort of option where you can just drag the images into the page and iphoto will adapt the layout for the image? (But maintaining the maximum number of pictures on each page/layout?
    Any help or insight will be immensely helpful!
    Thank you!!
    Courtney

    How can I find out the dimensions of each photo "slot" so I can reduce pictures to fit in the slot without losing some of the image?
    For example, since there are so many pictures, I chose the 16 photos/page option but the only layout available is a "square" type slot. Some of the horizontal images (long matchbooks) get chopped off and the image-size slider is already at the smallest setting. So: what's the size for each slot?
    Photo slots do not have "dimensions" - they are a ratio - typically square 1x1 or rectangular 4x3 - You can fit a photo to the frame in most layouts by right clicking on the placed photo and selecting fit to frame
    Isn't there some sort of option where you can just drag the images into the page and iphoto will adapt the layout for the image? (But maintaining the maximum number of pictures on each page/layout?
    In some layouts for some themes the direction of the frame changes with the placed photo - in others it does not - you simply have to experiment to find the ones that do
    This write up on iphoto '09  --  http://www.iphotobookthemes.com/pmwiki.php?n=Main.HomePage  --  explains some and shows examples of the '09 layouts - in general those are still valid in '11 and there are lots more  
    LN

  • Diable BR_TRACE in BRTOOLS

    Hi,
         I am working on ECC 6.0 ABAP stack. I would like to know, how to diable BR_TRACE in brtools.
    when i use brtools in the Production System ( High Availability System) this is what it is showing :
    \database\initPI1.sap NULL'
    BR0250I BR_TRACE: level 2, function BrNameBuild exit with 'initPI1.sap'
    BR0248I BR_TRACE: level 2, function BrMenuProcess entry with 1
    BR0248I BR_TRACE: level 3, function BrOraSigPatch entry with 'TRUE'
    BR0249I BR_TRACE: level 3, function BrOraSigPatch exit with 0
    BR0280I BRTOOLS time stamp: 2008-08-06 13.32.51
    BR0656I Choice menu 1 - please make a selection
    BR*Tools main menu
    1 = Instance management
    2 - Space management
    3 - Segment management
    4 - Backup and database copy
    5 - Restore and recovery
    6 - Check and verification
    7 - Database statistics
    8 - Additional functions
    9 - Exit program
    Standard keys: c - cont, b - back, s - stop, r - refr, h - help
    BR0662I Enter your choice:
    Further when i select the option 2
    _*BR1001I BRSPACE 7.00 (18)
    BR0200I BR_TRACE: location BrEnvProcess-1, Environment of BRSPACE:
    'ALLUSERSPROFILE=C:\Documents and Settings\All Users'
    'APPDATA=C:\Documents and Settings\pi1adm\Application Data'
    'BR_TRACE=15'
    'CLIENTNAME=TKIID070272'
    'ClusterLog=C:\WINDOWS\Cluster\cluster.log'
    'CommonProgramFiles=C:\Program Files\Common Files'
    'COMPUTERNAME=TKIICI'
    'ComSpec=C:\WINDOWS\system32\cmd.exe'
    'DBMS_TYPE=ora'
    'dbs_ora_schema=SAPSR3'
    'dbs_ora_tnsname=PI1'
    'FP_NO_HOST_CHECK=NO'
    'HOMEDRIVE=C:'
    'HOMEPATH=\Documents and Settings\pi1adm'
    'LOGONSERVER=
    TKIIDC01'
    'NLS_LANG=AMERICAN_AMERICA.UTF8'
    'NUMBER_OF_PROCESSORS=8'
    'ORACLE_HOME=I:\oracle\PI1\102'
    'ORACLE_SID=PI1'
    'OS=Windows_NT'
    'Path=I:\oracle\PI1\102\BIN;C:\Program Files\Windows Resource Kits\Tools\;I:\Oracle\OFS\jre\1.4.2\bin\client;I:\Oracle\OFS\jre\1.4.2\bin;I:\oracle\PI1\102\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;I:\Oracle\OFS\fs\fssvr\bin;I:\Oracl
    'PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH'
    'PERL5LIB=I:\oracle\PI1\102\perl\5.8.3\lib\MSWin32-x86;I:\oracle\PI1\102\perl\5.8.3\lib;I:\oracle\PI1\102\perl\5.8.3\lib\MSWin32-x86;I:\oracle\PI1\102\perl\site\5.8.3;I:\oracle\PI1\102\perl\site\5.8.3\lib;I:\oracle\PI1\102\sysman\admin\scripts;'
    'PROCESSOR_ARCHITECTURE=x86'
    'PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 7, GenuineIntel'
    'PROCESSOR_LEVEL=6'
    'PROCESSOR_REVISION=0f07'
    'ProgramFiles=C:\Program Files'
    'PROMPT=$P$G'
    'SAPARCH=S:\oracle\PI1\saparch'
    'SAPBACKUP=S:\oracle\PI1\sapbackup'
    'SAPCHECK=S:\oracle\PI1\sapcheck'
    'SAPDATA1=M:\oracle\PI1\sapdata1'
    'SAPDATA2=J:\oracle\PI1\sapdata2'
    'SAPDATA3=K:\oracle\PI1\sapdata3'
    'SAPDATA4=L:\oracle\PI1\sapdata4'
    'SAPDATA_HOME=I:\oracle\PI1'
    'SAPEXE=C:\WINDOWS\SapCluster'
    'SAPLOCALHOST=tkiici'
    'SAPMNT=
    tkiisap\sapmnt'
    'SAPREORG=S:\oracle\PI1\sapreorg'
    'SAPSYSTEMNAME=PI1'
    'SAPTRACE=S:\oracle\PI1\saptrace'
    'SESSIONNAME=RDP-Tcp#43'
    'SystemDrive=C:'
    'SystemRoot=C:\WINDOWS'
    'TEMP=C:\WINDOWS\TEMP\1'
    'TMP=C:\WINDOWS\TEMP\1'
    'TNS_ADMIN=
    tkiisap\sapmnt\PI1\SYS\profile\oracle'
    'USER=pi1adm'
    'USERDNSDOMAIN=THYSSENKRUPPINDIANEW.COM'
    'USERDOMAIN=TKIIDC'
    'USERNAME=pi1adm'
    'USERPROFILE=C:\Documents and Settings\pi1adm'
    'windir=C:\WINDOWS'
    BR0248I BR_TRACE: level 2, function ora_base_get entry with 'PI1'
    BR0248I BR_TRACE: level 3, function ora_key_get entry with 'PI1'
    BR0248I BR_TRACE: level 4, function reg_key_val_get entry with 'SYSTEM\CurrentControlSet\Services\OracleServicePI1 ImagePath'
    BR0250I BR_TRACE: level 4, function reg_key_val_get exit with 'i:\oracle\pi1\102\bin\ORACLE.EXE PI1'
    BR0248I BR_TRACE: level 4, function BrNameBuild entry with '41 i:\oracle\pi1\102\bin\ORACLE.EXE PI1 NULL'
    BR0250I BR_TRACE: level 4, function BrNameBuild exit with 'i:\oracle\pi1\102\bin'
    BR0248I BR_TRACE: level 4, function BrNameBuild entry with '41 i:\oracle\pi1\102\bin\ORACLE.EXE PI1 NULL'
    BR0250I BR_TRACE: level 4, function BrNameBuild exit with 'i:\oracle\pi1\102\bin'
    BR0250I BR_TRACE: level 3, function ora_key_get exit with 'SOFTWARE\ORACLE\KEY_PI1102'
    BR0248I BR_TRACE: level 3, function reg_key_val_get entry with 'SOFTWARE\ORACLE\KEY_PI1102 ORACLE_BASE'
    BR0250I BR_TRACE: level 3, function reg_key_val_get exit with 'I:\oracle\PI1'
    BR0250I BR_TRACE: level 2, function ora_base_get exit with 'I:\oracle\PI1'
    BR0248I BR_TRACE: level 2, function BrCopyBuild entry with '1 2 0 \nul \nul'
    BR0250I BR_TRACE: level 2, function BrCopyBuild exit with 'copy \nul \nul'
    BR0248I BR_TRACE: level 2, function BrPipeOpen entry with 'copy \nul \nul'
    BR0248I BR_TRACE: level 3, function BrOraSigPatch entry with 'TRUE'
    BR0249I BR_TRACE: level 3, function BrOraSigPatch exit with 0
    BR0200I BR_TRACE: location BrPipeOpen-3, command line:
    '( copy \nul \nul ) 2>&1'
    BR0250I BR_TRACE: level 2, function BrPipeOpen exit with 7C38B548
    BR0200I BR_TRACE: location BrEnvProcess-97, command output from pipe:
    '        1 file(s) copied.^'
    BR0248I BR_TRACE: level 2, function BrPipeClose entry with 'copy \nul \nul'
    BR0248I BR_TRACE: level 3, function BrOraSigPatch entry with 'FALSE'
    BR0249I BR_TRACE: level 3, function BrOraSigPatch exit with 0
    BR0249I BR_TRACE: level 2, function BrPipeClose exit with 0
    BR0249I BR_TRACE: level 1, function BrEnvProcess exit with 0
    BR0248I BR_TRACE: level 1, function BrNameSet entry with 'void'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'I:\oracle\PI1\102\BIN\sqlplus.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '552960 552960'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'I:\oracle\PI1\102\BIN\srvctl.bat'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '1080 1080'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'I:\oracle\PI1\102\BIN\rman.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '1556480 1556480'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'I:\oracle\PI1\102\database\spfilePI1.ora'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '4608 4608'
    BR0248I BR_TRACE: level 2, function BrOraReplace entry with 'initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrOraReplace exit with 'void'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\brarchive.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '1683456 1683456'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\brbackup.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '1888256 1888256'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\brconnect.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '2490368 2490368'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\brrecover.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '2076672 2076672'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\brrestore.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '811008 811008'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\brspace.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '2654208 2654208'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\brtools.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '1241088 1241088'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\backint.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with 'FILE_NULL'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\backint.bat'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with 'FILE_NULL'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\backint.cmd'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with 'FILE_NULL'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\splitint.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with 'FILE_NULL'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\splitint.bat'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with 'FILE_NULL'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\splitint.cmd'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with 'FILE_NULL'
    BR0248I BR_TRACE: level 2, function BrPidGet entry with 'void'
    BR0249I BR_TRACE: level 2, function BrPidGet exit with 5028
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'S:\oracle\PI1\saptrace\background\alert_PI1.log'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with '12295615 12295615'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'C:\WINDOWS\SapCluster\sapftp.exe'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with 'FILE_NULL'
    BR0248I BR_TRACE: level 2, function BrFileStatGet entry with 'I:\oracle\PI1\102\RDBMS\admin\log'
    BR0250I BR_TRACE: level 2, function BrFileStatGet exit with 'FILE_NULL'
    BR0249I BR_TRACE: level 1, function BrNameSet exit with 0
    BR0248I BR_TRACE: level 1, function BrInitSapRead entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'backup_mode all'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'restore_mode all'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'backup_type offline_force'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'backup_dev_type disk'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'backup_root_dir M:\backup'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'stage_root_dir M:\backup'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'compress YES'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'compress_cmd N:\usr\sap\PI1\SYS\exe\uc\NTI386\mkszip -c $ > $'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'uncompress_cmd N:\usr\sap\PI1\SYS\exe\uc\NTI386\uncompress -c $ > $'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'compress_dir S:\oracle\PI1\sapreorg'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'archive_function save'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'archive_copy_dir M:\backup'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'archive_stage_dir M:\backup'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'tape_copy_cmd dd'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'disk_copy_cmd copy'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'stage_copy_cmd rcp'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'pipe_copy_cmd rsh'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'cpio_flags -ovB'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'cpio_in_flags -iuvB'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'cpio_disk_flags -pdcu'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'dd_flags bs=64k'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'dd_in_flags bs=64k'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'saveset_members 1'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'copy_out_cmd dd ibs=8k obs=64k of=$'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'copy_in_cmd dd ibs=64k obs=8k if=$'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'rewind mt -f $ rewind'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'rewind_offline mt -f $ offline'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'tape_pos_cmd mt -f $ fsf $'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'tape_size 1000G'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'exec_parallel 0'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'tape_address /dev/nmt0'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'tape_address_rew /dev/mt0'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'volume_archive PI1A01'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'volume_backup PI1B01'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'expir_period 30'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'tape_use_count 100'
    BR0248I BR_TRACE: level 2, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.sap'
    BR0250I BR_TRACE: level 2, function BrParamGet exit with 'NULL'
    BR0249I BR_TRACE: level 1, function BrInitSapRead exit with 0
    BR0248I BR_TRACE: level 1, function global_set entry with 'dummy'
    BR0249I BR_TRACE: level 1, function global_set exit with 0
    BR0248I BR_TRACE: level 1, function BrsNameSet entry with 'void'
    BR0250I BR_TRACE: level 1, function BrsNameSet exit with 'void'
    BR1002I Start of BRSPACE processing: sdyculws.tse 2008-06-11 14.14.10
    BR0248I BR_TRACE: level 1, function brs_run_check entry with 'void'
    BR0248I BR_TRACE: level 2, function BrPidGet entry with 'void'
    BR0249I BR_TRACE: level 2, function BrPidGet exit with 5028
    BR0249I BR_TRACE: level 1, function brs_run_check exit with 0
    BR0248I BR_TRACE: level 1, function BrFileStatGet entry with 'S:\oracle\PI1\sapreorg\spacePI1.log'
    BR0250I BR_TRACE: level 1, function BrFileStatGet exit with '1840 1840'
    BR0248I BR_TRACE: level 1, function BrDbaConnect entry with 'PI1'
    BR0280I BRSPACE time stamp: 2008-06-11 14.14.10
    BR0644I BR_TRACE: location BrDbaConnect-2, SQL statement:
    'CONNECT / IN SYSDBA MODE'
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 0
    BR0644I BR_TRACE: location BrDbaConnect-3, SQL statement:
    'ALTER SESSION SET SQL_TRACE = TRUE'
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 0
    BR0644I BR_TRACE: location BrDbaConnect-4, SQL statement:
    'SELECT INSTANCE_NAME, INSTANCE_NUMBER, STATUS, LOGINS, VERSION, ARCHIVER, NVL(PARALLEL, ' '), NVL(TO_NUMBER(TO_CHAR(STARTUP_TIME, 'YYYYMMDDHH24MISS')), 0), FROM V$INSTANCE WHERE ROWNUM = 1'
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location BrDbaConnect-5, SQL output:
    'pi1', '1', 'OPEN', 'ALLOWED', '10.2.0.2.0', 'STARTED', 'NO', '20080611121438'
    BR0644I BR_TRACE: location BrDbaConnect-6, SQL statement:
    'SELECT NAME, CONTROLFILE_TYPE, NVL(RESETLOGS_CHANGE#, 0), NVL(TO_NUMBER(TO_CHAR(RESETLOGS_TIME, 'YYYYMMDDHH24MISS')), 0) NVL(TO_NUMBER(TO_CHAR(CREATED, 'YYYYMMDDHH24MISS')), 0), LOG_MODE, FROM V$DATABASE WHERE ROWNUM = 1'
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location BrDbaConnect-7, SQL output:
    'PI1', 'CURRENT', '1', '20071004125230', 20071004125230', 'ARCHIVELOG'
    BR0248I BR_TRACE: level 2, function BrCurrRedoGet entry with 'PI1'
    BR0644I BR_TRACE: location BrCurrRedoGet-3, SQL statement:
    'SELECT NVL(MAX(SEQUENCE#), 0), NVL(MAX(FIRST_CHANGE#), 0), NVL(TO_NUMBER(TO_CHAR(MAX(FIRST_TIME), 'YYYYMMDDHH24MISS')), 0) FROM V$LOG WHERE THREAD# = 1'
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location BrCurrRedoGet-4, SQL output:
    '9776', '102441584', '20080611135236'
    BR0249I BR_TRACE: level 2, function BrCurrRedoGet exit with 0
    BR0644I BR_TRACE: location BrDbaConnect-10, SQL statement:
    'SELECT TO_NUMBER(VALUE) FROM V$PARAMETER WHERE NAME = 'db_block_size''
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location BrDbaConnect-11, SQL output:
    '8192'
    BR0644I BR_TRACE: location BrDbaConnect-12, SQL statement:
    'SELECT BLOCK_SIZE FROM V$ARCHIVED_LOG WHERE ROWNUM = 1'
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location BrDbaConnect-13, SQL output:
    '512'
    BR0249I BR_TRACE: level 1, function BrDbaConnect exit with 0
    BR0248I BR_TRACE: level 1, function BrSqlInitiate entry with 'dummy'
    BR0248I BR_TRACE: level 2, function ora_vers_get entry with 'dummy'
    BR0248I BR_TRACE: level 3, function BrFileStatGet entry with 'I:\oracle\PI1\102\database\spfilePI1.ora'
    BR0250I BR_TRACE: level 3, function BrFileStatGet exit with '4608 4608'
    BR0644I BR_TRACE: location ora_vers_get-1, SQL statement:
    'SELECT INSTANCE_NAME, INSTANCE_NUMBER, VERSION, HOST_NAME, ARCHIVER, NVL(PARALLEL, ' ') FROM V$INSTANCE WHERE ROWNUM = 1'
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location ora_vers_get-2, SQL output:
    'pi1', '1', '10.2.0.2.0', 'TKIICI', 'STARTED', 'NO'
    BR0644I BR_TRACE: location ora_vers_get-3, SQL statement:
    'SELECT RESETLOGS_ID FROM V$DATABASE_INCARNATION WHERE STATUS = 'CURRENT''
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location ora_vers_get-4, SQL output:
    '635086350'
    BR0249I BR_TRACE: level 2, function ora_vers_get exit with 102
    BR0248I BR_TRACE: level 2, function BrDbaSynCheck entry with 'W'
    BR0644I BR_TRACE: location BrDbaSynCheck-1, SQL statement:
    'SELECT COUNT(*) FROM SAP_SDBAH WHERE BEG = '00000000000000''
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location BrDbaSynCheck-2, SQL output:
    '0'
    BR0249I BR_TRACE: level 2, function BrDbaSynCheck exit with 0
    BR0248I BR_TRACE: level 2, function BrCurrRedoGet entry with 'PI1'
    BR0644I BR_TRACE: location BrCurrRedoGet-3, SQL statement:
    'SELECT NVL(MAX(SEQUENCE#), 0), NVL(MAX(FIRST_CHANGE#), 0), NVL(TO_NUMBER(TO_CHAR(MAX(FIRST_TIME), 'YYYYMMDDHH24MISS')), 0) FROM V$LOG WHERE THREAD# = 1'
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location BrCurrRedoGet-4, SQL output:
    '9776', '102441584', '20080611135236'
    BR0249I BR_TRACE: level 2, function BrCurrRedoGet exit with 0
    BR0249I BR_TRACE: level 1, function BrSqlInitiate exit with 0
    BR0248I BR_TRACE: level 1, function BrLicCheck entry with 'dummy'
    BR0644I BR_TRACE: location BrLicCheck-1, SQL statement:
    'SELECT VERSION FROM SAP_SVERS WHERE ROWNUM = 1'
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location BrLicCheck-2, SQL output:
    '700'
    BR0644I BR_TRACE: location BrLicCheck-3, SQL statement:
    'SELECT TABLE_OWNER FROM DBA_SYNONYMS WHERE OWNER = 'PUBLIC' AND SYNONYM_NAME = 'SAP_SDBAH''
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0645I BR_TRACE: location BrLicCheck-4, SQL output:
    'SAPSR3'
    BR0248I BR_TRACE: level 2, function likey_check entry with 'PI1'
    BR0248I BR_TRACE: level 3, function BrNameBuild entry with '1 LASVerify.pse I:\oracle\PI1'
    BR0250I BR_TRACE: level 3, function BrNameBuild exit with 'I:\oracle\PI1\LASVerify.pse'
    BR0248I BR_TRACE: level 3, function trace_print entry with ''
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '*** Start of API function likey_init ***'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likey_init: sid = "PI1"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_calloc (1, 21) for type "List of the SW products" returns 0304C9A8.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likey_init: products [0] = "NetWeaver_ORA"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likey_init: basis_release = "7.00"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likey_init: temporary license keys allowed.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likey_init: not running within the SAP WebAS ABAP.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'PSE name "I:\oracle\PI1\LASVerify.pse" memorized.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'The contents of the PSE file "I:\oracle\PI1\LASVerify.pse" is the 2038 version.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '
    ===...SSF library sapsecu.dll loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfVersion loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfEncode loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfDecode loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfSign loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfVerify loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfEnvelope loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfDevelope loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfAddSign loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfDigest loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfDELSsfOctetstring loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfNEWSigRcpSsfInfo loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfDELSigRcpSsfInfo loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfINSSigRcpSsfInfo loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfDELSigRcpSsfInfoList loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '===...SsfQueryProperties loaded successfully.
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'SAPSECULIB initialized by calling SsfSupInit ().'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyper_init: insert_record memorized.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyper_init: update_record memorized.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyper_init: delete_record memorized.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyper_init: get_record memorized.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyper_init: get_all_records memorized.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyper_init: cleanup memorized.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function EgGetPtr entry with 'dummy'
    BR0249I BR_TRACE: level 3, function EgGetPtr exit with 8
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyche_get_existing_buffer: no buffer in EG memory so far.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_malloc (60) for type "Buffer of likeys (handle)" returns 0304CAA0.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_malloc (40) for type "Buffer of likeys (array)" returns 02FB5C40.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyche_fill_buffer: Start'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function likey_rec_all_get entry with 'dummy'
    BR0248I BR_TRACE: level 4, function all_rec_cleanup entry with 'void'
    BR0250I BR_TRACE: level 4, function all_rec_cleanup exit with 'void'
    BR0248I BR_TRACE: level 4, function saplikey_read entry with 'void'
    BR0248I BR_TRACE: level 5, function pair_init entry with 'void'
    BR0249I BR_TRACE: level 5, function pair_init exit with 0
    BR0248I BR_TRACE: level 5, function string_init entry with 'void'
    BR0250I BR_TRACE: level 5, function string_init exit with 'void'
    BR0248I BR_TRACE: level 5, function string_get entry with 'void'
    BR0250I BR_TRACE: level 5, function string_get exit with '0002LK0003PI10011R16593654780013NetWeaver_ORA'
    BR0248I BR_TRACE: level 5, function string_init entry with 'void'
    BR0250I BR_TRACE: level 5, function string_init exit with 'void'
    BR0248I BR_TRACE: level 5, function string_get entry with 'void'
    BR0250I BR_TRACE: level 5, function string_get exit with '001021474836470001P0424MIIBOgYJKoZIhvcNAQcCoIIBKzCCAScCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGCAQYwggECAgEBMFgwUjELMAkGA1UEBhMCREUxHDAaBgNVBAoTE215U0FQLmNvbSBXb3JrcGxhY2UxJTAjBgNVBAMTHG15U0FQL
    BR0248I BR_TRACE: level 5, function pair_add entry with '0002LK0003PI10011R16593654780013NetWeaver_ORA'
    BR0248I BR_TRACE: level 6, function pair_search entry with 'void'
    BR0249I BR_TRACE: level 6, function pair_search exit with 1
    BR0249I BR_TRACE: level 5, function pair_add exit with 0
    BR0248I BR_TRACE: level 5, function string_init entry with 'void'
    BR0250I BR_TRACE: level 5, function string_init exit with 'void'
    BR0248I BR_TRACE: level 5, function string_get entry with 'void'
    BR0250I BR_TRACE: level 5, function string_get exit with '0002LK0003PI10011U11906219590013NetWeaver_ORA'
    BR0248I BR_TRACE: level 5, function string_init entry with 'void'
    BR0250I BR_TRACE: level 5, function string_init exit with 'void'
    BR0248I BR_TRACE: level 5, function string_get entry with 'void'
    BR0250I BR_TRACE: level 5, function string_get exit with '001021474836470001P0428MIIBOwYJKoZIhvcNAQcCoIIBLDCCASgCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGCAQcwggEDAgEBMFgwUjELMAkGA1UEBhMCREUxHDAaBgNVBAoTE215U0FQLmNvbSBXb3JrcGxhY2UxJTAjBgNVBAMTHG15U0FQL
    BR0248I BR_TRACE: level 5, function pair_add entry with '0002LK0003PI10011U11906219590013NetWeaver_ORA'
    BR0248I BR_TRACE: level 6, function pair_search entry with 'void'
    BR0249I BR_TRACE: level 6, function pair_search exit with 1
    BR0249I BR_TRACE: level 5, function pair_add exit with 0
    BR0248I BR_TRACE: level 5, function string_init entry with 'void'
    BR0250I BR_TRACE: level 5, function string_init exit with 'void'
    BR0248I BR_TRACE: level 5, function string_get entry with 'void'
    BR0250I BR_TRACE: level 5, function string_get exit with '0002LC0003PI10011U11906219590013NetWeaver_ORA'
    BR0248I BR_TRACE: level 5, function string_init entry with 'void'
    BR0250I BR_TRACE: level 5, function string_init exit with 'void'
    BR0248I BR_TRACE: level 5, function string_get entry with 'void'
    BR0250I BR_TRACE: level 5, function string_get exit with '0008200805210024Q6qehUG2NlCWIgKCdvVNUA=='
    BR0248I BR_TRACE: level 5, function pair_add entry with '0002LC0003PI10011U11906219590013NetWeaver_ORA'
    BR0248I BR_TRACE: level 6, function pair_search entry with 'void'
    BR0249I BR_TRACE: level 6, function pair_search exit with 1
    BR0249I BR_TRACE: level 5, function pair_add exit with 0
    BR0248I BR_TRACE: level 5, function string_init entry with 'void'
    BR0250I BR_TRACE: level 5, function string_init exit with 'void'
    BR0248I BR_TRACE: level 5, function string_get entry with 'void'
    BR0250I BR_TRACE: level 5, function string_get exit with '0002LC0003PI10011R16593654780013NetWeaver_ORA'
    BR0248I BR_TRACE: level 5, function string_init entry with 'void'
    BR0250I BR_TRACE: level 5, function string_init exit with 'void'
    BR0248I BR_TRACE: level 5, function string_get entry with 'void'
    BR0250I BR_TRACE: level 5, function string_get exit with '0008200806110024ddfbMiYe1NoOS7hVzSURKw=='
    BR0248I BR_TRACE: level 5, function pair_add entry with '0002LC0003PI10011R16593654780013NetWeaver_ORA'
    BR0248I BR_TRACE: level 6, function pair_search entry with 'void'
    BR0249I BR_TRACE: level 6, function pair_search exit with 1
    BR0249I BR_TRACE: level 5, function pair_add exit with 0
    BR0249I BR_TRACE: level 4, function saplikey_read exit with 0
    BR0250I BR_TRACE: level 3, function likey_rec_all_get exit with 0304CB08
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyper_get_all_records () returns:'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '0) "0002LK0003PI10011R16593654780013NetWeaver_ORA" -> "001021474836470001P0424MIIBOgYJKoZIhvcNAQcCoIIBKzCCAScCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGCAQYwggECAgEBMFgwUjELMAkGA1UEBhMCREUxHDAa
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '1) "0002LK0003PI10011U11906219590013NetWeaver_ORA" -> "001021474836470001P0428MIIBOwYJKoZIhvcNAQcCoIIBLDCCASgCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGCAQcwggEDAgEBMFgwUjELMAkGA1UEBhMCREUxHDAa
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '2) "0002LC0003PI10011U11906219590013NetWeaver_ORA" -> "0008200805210024Q6qehUG2NlCWIgKCdvVNUA=="'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '3) "0002LC0003PI10011R16593654780013NetWeaver_ORA" -> "0008200806110024ddfbMiYe1NoOS7hVzSURKw=="'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '4 records listed.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Start first loop.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_malloc (264) for type "Internal form of a likey" returns 02F8CF98.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_malloc (425) for type "Signature of a likey" returns 03057C50.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_make_likey_from_pair: the following likey was made:'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'SID              : "PI1"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Hardware key     : "R1659365478"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'SW product       : "NetWeaver_ORA"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'SW product limit : 2147483647'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'SW product text  : ""'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Type             : permanent'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Signature        : "MIIBOgYJKoZIhvcNAQcCoIIBKzCCAScCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGCAQYwggECAgEBMFgwUjELMAkGA1UEBhMCREUxHDAaBgNVBAoTE215U0FQLmNvbSBXb3JrcGxhY2UxJTAjBgNVBAMTHG15U0FQLm
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Installation #   : "0020276018"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Begin date       : "09/Oct/2007"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'End date         : "31/Dec/9999"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'System #         : "000000000310631694"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Validity         : unknown'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Last succf. check: "00/???/0000"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'License key was inserted into the buffer in heap memory.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_malloc (264) for type "Internal form of a likey" returns 03057E28.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_malloc (429) for type "Signature of a likey" returns 03057F58.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_make_likey_from_pair: the following likey was made:'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'SID              : "PI1"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Hardware key     : "U1190621959"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'SW product       : "NetWeaver_ORA"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'SW product limit : 2147483647'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'SW product text  : ""'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Type             : permanent'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Signature        : "MIIBOwYJKoZIhvcNAQcCoIIBLDCCASgCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGCAQcwggEDAgEBMFgwUjELMAkGA1UEBhMCREUxHDAaBgNVBAoTE215U0FQLmNvbSBXb3JrcGxhY2UxJTAjBgNVBAMTHG15U0FQLm
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Installation #   : "0020276018"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Begin date       : "24/Oct/2007"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'End date         : "31/Dec/9999"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'System #         : "000000000310631694"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Validity         : unknown'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Last succf. check: "00/???/0000"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'License key was inserted into the buffer in heap memory.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Start second loop.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_get_lsc_date_from_pair: found lsc date "21/May/2008".'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_update_lsc_date: lsc_date set to "21/May/2008".'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_get_lsc_date_from_pair: found lsc date "11/Jun/2008".'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_update_lsc_date: lsc_date set to "11/Jun/2008".'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function likey_rec_cleanup entry with 'void'
    BR0248I BR_TRACE: level 4, function all_rec_cleanup entry with 'void'
    BR0250I BR_TRACE: level 4, function all_rec_cleanup exit with 'void'
    BR0250I BR_TRACE: level 3, function likey_rec_cleanup exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyper_cleanup () called.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyche_fill_buffer: Successful end'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'to_be_checked = "PI1R1659365478NetWeaver_ORA       214748364720071009999912310020276018", permanent license key.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'signature = "MIIBOgYJKoZIhvcNAQcCoIIBKzCCAScCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGCAQYwggECAgEBMFgwUjELMAkGA1UEBhMCREUxHDAaBgNVBAoTE215U0FQLmNvbSBXb3JrcGxhY2UxJTAjBgNVBAMTHG15U0FQLmNvbSBXb
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'rc of SsfEncode: 0 = SSF_API_OK = success for each signer'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'rc of SsfVerify: 0 = SSF_API_OK = success for each signer'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'uResult = 0 = SSF_API_SIGNER_OK = Valid signature'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Passed the precheck_without_expiration.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_expired: return 0 (valid).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_precheck for PI1/R1659365478/NetWeaver_ORA returns 0 (reason: unknown).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'to_be_checked = "PI1U1190621959NetWeaver_ORA       214748364720071024999912310020276018", permanent license key.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'signature = "MIIBOwYJKoZIhvcNAQcCoIIBLDCCASgCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGCAQcwggEDAgEBMFgwUjELMAkGA1UEBhMCREUxHDAaBgNVBAoTE215U0FQLmNvbSBXb3JrcGxhY2UxJTAjBgNVBAMTHG15U0FQLmNvbSBXb
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'rc of SsfEncode: 0 = SSF_API_OK = success for each signer'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'rc of SsfVerify: 0 = SSF_API_OK = success for each signer'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'uResult = 0 = SSF_API_SIGNER_OK = Valid signature'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Passed the precheck_without_expiration.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_expired: return 0 (valid).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_precheck for PI1/U1190621959/NetWeaver_ORA returns 0 (reason: unknown).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyche_precheck: 0 likeys deleted, 2 likeys kept in the buffer.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyche_copy_to_eg_memory: Start'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function sapgparam entry with 'dummy'
    BR0250I BR_TRACE: level 3, function sapgparam exit with 'NULL'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyche_copy_to_eg_memory: reserving 5 entries in EG memory.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '3600 bytes required.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function EgAlloc entry with 'dummy'
    BR0249I BR_TRACE: level 3, function EgAlloc exit with 0
    BR0248I BR_TRACE: level 3, function trace_print entry with 'EG memory successfully allocated.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function EgRegisterPtr entry with 'dummy'
    BR0249I BR_TRACE: level 3, function EgRegisterPtr exit with 0
    BR0248I BR_TRACE: level 3, function trace_print entry with 'EG memory area successfully registered as "LIKEY_BUFFER".'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'compute_addresses_in_EG_memory: index = 0'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'array_offset = 60'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_struct_offset = 80'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'signature_offset = 1400'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Address of the buffer = 03058130'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Address of the array entry = 0305816C'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Address of the likeyind structure entry = 03058180'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Address of the signature entry = 030586A8'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_copy_to_eg_memory: SID = "PI1", hwkey = "R1659365478", SW product = "NetWeaver_ORA"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '                            new_struct_addr = 03058180, new_sign_addr = 030586A8'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'compute_addresses_in_EG_memory: index = 1'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'array_offset = 64'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_struct_offset = 344'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'signature_offset = 1840'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Address of the buffer = 03058130'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Address of the array entry = 03058170'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Address of the likeyind structure entry = 03058288'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Address of the signature entry = 03058860'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_copy_to_eg_memory: SID = "PI1", hwkey = "U1190621959", SW product = "NetWeaver_ORA"'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '                            new_struct_addr = 03058288, new_sign_addr = 03058860'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_free (03057C50) called (type Signature of a likey, size 425).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_free (02F8CF98) called (type Internal form of a likey, size 264).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_free (03057F58) called (type Signature of a likey, size 429).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_free (03057E28) called (type Internal form of a likey, size 264).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_free (02FB5C40) called (type Buffer of likeys (array), size 40).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeymem_free (0304CAA0) called (type Buffer of likeys (handle), size 60).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Buffer in heap memory destructed.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function MtxOpenImp entry with 'dummy'
    BR0249I BR_TRACE: level 3, function MtxOpenImp exit with 0
    BR0248I BR_TRACE: level 3, function trace_print entry with 'Mutex object initialized.'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyche_copy_to_eg_memory: return 0'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '*** End of API function likey_init ***'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function trace_print entry with '*** Start of API function likey_check_for_any_product ***'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function MtxLockImpl entry with 'dummy'
    BR0249I BR_TRACE: level 3, function MtxLockImpl exit with 0
    BR0248I BR_TRACE: level 3, function trace_print entry with 'likeyind_valid_date: return 0 (valid).'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0248I BR_TRACE: level 3, function MtxUnlockImpl entry with 'dummy'
    BR0249I BR_TRACE: level 3, function MtxUnlockImpl exit with 0
    BR0248I BR_TRACE: level 3, function trace_print entry with '*** End of API function likey_check_for_any_product ***'
    BR0250I BR_TRACE: level 3, function trace_print exit with 'void'
    BR0249I BR_TRACE: level 2, function likey_check exit with 0
    BR0249I BR_TRACE: level 1, function BrLicCheck exit with 0
    BR0248I BR_TRACE: level 1, function BrsDblogOpen entry with '20080611141410 tse sdyculws'
    BR0644I BR_TRACE: location BrsDblogOpen-1, SQL statement:
    'INSERT INTO SAP_SDBAH (BEG, FUNCT, SYSID, OBJ, RC, ENDE, ACTID, LINE) VALUES ('20080611141410', 'tse', 'PI1', ' ', '9999', ' ', 'sdyculws', ' ')'
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0248I BR_TRACE: level 2, function BrBackIdBuild entry with 'sdyculws tse'
    BR0250I BR_TRACE: level 2, function BrBackIdBuild exit with 'sdyculws.tse'
    BR0248I BR_TRACE: level 2, function BrNameBuild entry with '1 sdyculws.tse S:\oracle\PI1\sapreorg'
    BR0250I BR_TRACE: level 2, function BrNameBuild exit with 'S:\oracle\PI1\sapreorg\sdyculws.tse'
    BR0644I BR_TRACE: location BrsDblogOpen-5, SQL statement:
    'INSERT INTO SAP_DBATL (SYS_ID, OPER_ID, TASKNAME, JOB_NR, UPD_OP, TLOGNAME, STATUS, BEGIN_OP, END_OP, RC, INTERNAL) VALUES ('PI1', '20080611141410', 'Extend tablespace', '0000000000', '20080611141413', 'S:\oracle\PI1\sapreorg\sdyculws.tse', 'STARTED
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0644I BR_TRACE: location BrsDblogOpen-6, SQL statement:
    'INSERT INTO SAP_DBAML (SYS_ID, OPER_ID, TASKNAME, JOB_NR, TRIAL, UTIL_NR, FUNC_ID, UPD_OP, TOOLSET, PROGNAME, LOG_NAME, STATUS, BEGIN_OP, END_OP, RC, INTERNAL) VALUES ('PI1', '20080611141410', 'Extend tablespace', '0000000000', '1', '0000000000', 't
    BR0300I BR_TRACE: SQL code: 0, number of processed rows: 1
    BR0249I BR_TRACE: level 1, function BrsDblogOpen exit with 0
    BR0248I BR_TRACE: level 1, function BrInstProcess entry with 'PI1'
    BR0248I BR_TRACE: level 2, function BrInitOraRead entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*._b_tree_bitmap_plans FALSE'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*._in_memory_undo FALSE'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*._optim_peek_user_binds FALSE'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*._optimizer_mjc_enabled FALSE'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*._sort_elimination_cost_ratio 10'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.background_dump_dest S:\oracle\PI1\saptrace\background'
    BR0248I BR_TRACE: level 3, function BrOraReplace entry with 'S:\oracle\PI1\saptrace\background'
    BR0250I BR_TRACE: level 3, function BrOraReplace exit with 'void'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.compatible 10.2.0'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.control_file_record_keep_time 30'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.control_files P:\oracle\PI1\origlogA\cntrl\cntlrPI1.dbf'
    BR0248I BR_TRACE: level 3, function BrOraReplace entry with 'P:\oracle\PI1\origlogA\cntrl\cntlrPI1.dbf'
    BR0250I BR_TRACE: level 3, function BrOraReplace exit with 'void'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.core_dump_dest S:\oracle\PI1\saptrace\background'
    BR0248I BR_TRACE: level 3, function BrOraReplace entry with 'S:\oracle\PI1\saptrace\background'
    BR0250I BR_TRACE: level 3, function BrOraReplace exit with 'void'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.db_block_size 8192'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.db_cache_size 808923955'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.db_files 254'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.db_name PI1'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.dml_locks 4000'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.event 10191 trace name context forever, level 1'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.filesystemio_options setall'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.job_queue_processes 1'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.log_archive_dest O:\oracle\PI1\oraarch\PI1arch'
    BR0248I BR_TRACE: level 3, function BrOraReplace entry with 'O:\oracle\PI1\oraarch\PI1arch'
    BR0250I BR_TRACE: level 3, function BrOraReplace exit with 'void'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.log_buffer 1048576'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.log_checkpoint_interval 0'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.log_checkpoints_to_alert true'
    BR0248I BR_TRACE: level 3, function BrParamGet entry with 'I:\oracle\PI1\102\database\initPI1.ora'
    BR0250I BR_TRACE: level 3, function BrParamGet exit with '*.ma

    re corrected the question

  • Issue with index on table

    Hi,
    We have created an index(assume z2) on table CATSDB with 2 fields. There is an other index(Z1 assume) with the same fields and the order is also same. When a report accesing the table it is taking more time to run when index Z2 is on table. But when deleted then the report ran quickly. Is it with the duplicate index created???
    Please let me know
    Regards
    Shiva

    Hi
    i am giving total index and buffering concept details by seeing this you can understand how we can achive performance through these
    <b>reward if usefull</b>
    <b>Performance during table access</b>
    <b>Indexes</b>
    Primary and secondary indexes
    Structure of an index
    Accessing tables using indexes
    <b>Table buffering</b>
    Advantages of buffering
    Concept of buffering
    Buffering types
    Buffer synchronization
    <b>Primary and secondary indexes</b>
    Index: Technical key of a database table.
    Primary index: The primary index contains the key fields of the table and a pointer to the non-key fields of the table. The primary index is created automatically when the table is created in the database.
    Secondary index: Additional indexes could be created considering the most frequently accessed dimensions of the table.
    <b>Structure of an Index</b>
    An index can be used to speed up the selection of data records from a table.
    An index can be considered to be a copy of a database table reduced to certain fields. The data is stored in sorted form in this copy. This sorting permits fast access to the records of the table (for example using a binary search). Not all of the fields of the table are contained in the index. The index also contains a pointer from the index entry to the corresponding table entry to permit all the field contents to be read.
    When creating indexes, please note that:
    An index can only be used up to the last specified field in the selection! The fields which are specified in the WHERE clause for a large number of selections should be in the first position.
    Only those fields whose values significantly restrict the amount of data are meaningful in an index.
    When you change a data record of a table, you must adjust the index sorting. Tables whose contents are frequently changed therefore should not have too many indexes.
    Make sure that the indexes on a table are as disjunctive as possible.
    (That is they should contain as few fields in common as possible. If two indexes on a table have a large number of common fields, this could make it more difficult for the optimizer to choose the most selective index.)
    <b>Accessing tables using Indexes</b>
    The database optimizer decides which index on the table should be used by the database to access data records.
    You must distinguish between the primary index and secondary indexes of a table. The primary index contains the key fields of the table. The primary index is automatically created in the database when the table is activated. If a large table is frequently accessed such that it is not possible to apply primary index sorting, you should create secondary indexes for the table.
    The indexes on a table have a three-character index ID. '0' is reserved for the primary index. Customers can create their own indexes on SAP tables; their IDs must begin with Y or Z.
    If the index fields have key function, i.e. they already uniquely identify each record of the table, an index can be called a unique index. This ensures that there are no duplicate index fields in the database.
    When you define a secondary index in the ABAP Dictionary, you can specify whether it should be created on the database when it is activated. Some indexes only result in a gain in performance for certain database systems. You can therefore specify a list of database systems when you define an index. The index is then only created on the specified database systems when activated
    <b>Database access using Buffer concept</b>
    Buffering allows you to access data quicker by letting you
    access it from the application server instead of the database.
    <b>Advantages of buffering</b>
    Table buffering increases the performance when the records of the table are read.
    As records of a buffered table are read directly from the local buffer of the application server on which the accessing transaction is running, time required to access data is greatly reduced. The access improves by a factor of 10 to 100 depending on the structure of the table and on the exact system configuration.
    If the storage requirements in the buffer increase due to further data, the data that has not been accessed for the longest time is displaced. This displacement takes place asynchronously at certain times which are defined dynamically based on the buffer accesses. Data is only displaced if the free space in  the buffer is less than a predefined value or the quality of the access is not satisfactory at this time.
    Entering $TAB in the command field resets the table buffers on the corresponding application server. Only use this command if there are inconsistencies in the buffer. In large systems, it can take several hours to fill the buffers. The performance is considerably reduced during this time.
    <b>Concept of buffering</b>
    The R/3 System manages and synchronizes the buffers on the individual application servers. If an application program accesses data of a table, the database interfaces determines whether this data lies in the buffer of the application server. If this is the case, the data is read directly from the buffer. If the data is not in the buffer of the application server, it is read from the database and loaded into the buffer. The buffer can therefore satisfy the next access to this data.
    The buffering type determines which records of the table are loaded into the buffer of the application server when a record of the table is accessed. There are three different buffering types.
    With full buffering, all the table records are loaded into the buffer when one record of the table is accessed.
    With generic buffering, all the records whose left-justified part of the key is the same are loaded into the buffer when a table record is accessed.
    With single-record buffering, only the record that was accessed is loaded into the buffer.
    <b>Buffering types</b>
    With full buffering, the table is either completely or not at all in the buffer. When a record of the table is accessed, all the records of the table are loaded into the buffer.
    When you decide whether a table should be fully buffered, you must take the table size, the number of read accesses and the number of write accesses into consideration. The smaller the table is, the more frequently it is read and the less frequently it is written, the better it is to fully buffer the table.
    Full buffering is also advisable for tables having frequent accesses to records that do not exist. Since all the records of the table reside in the buffer, it is already clear in the buffer whether or not a record exists.
    The data records are stored in the buffer sorted by table key. When you access the data with SELECT, only fields up to the last specified key field can be used for the access. The left-justified part of the key should therefore be as large as possible for such accesses. For example, if the first key field is not defined, the entire table is scanned in the buffer. Under these circumstances, a direct access to the database could be more efficient if there is a suitable secondary index there.
    With generic buffering, all the records whose generic key fields agree with this record are loaded into the buffer when one record of the table is accessed. The generic key is a left-justified part of the primary key of the table that must be defined when the buffering type is selected. The generic key should be selected so that the generic areas are not too small, which would result in too many generic areas. If there are only a few records for each generic area, full buffering is usually preferable for the table. If you choose too large a generic key, too much data will be invalidated if there are changes to table entries, which would have a negative effect on the performance.
    A table should be generically buffered if only certain generic areas of the table are usually needed for processing.
    Client-dependent, fully buffered tables are automatically generically buffered. The client field is the generic key. It is assumed that not all of the clients are being processed at the same time on one application server. Language-dependent tables are a further example of generic buffering. The generic key includes all the key fields up to and including the language field.
    The generic areas are managed in the buffer as independent objects. The generic areas are managed analogously to fully buffered tables. You should therefore also read the information about full buffering.
    Single-record buffering is recommended particularly for large tables in which only a few records are accessed repeatedly with SELECT SINGLE. All the accesses to the table that do not use SELECT SINGLE bypass the buffer and directly access the database.
    If you access a record that was not yet buffered using SELECT SINGLE, there is a database access to load the record. If the table does not contain a record with the specified key, this record is recorded in the buffer as non-existent. This prevents a further database access if you make another access with the same key
    You only need one database access to load a table with full buffering, but you need several database accesses with single-record buffering. Full buffering is therefore generally preferable for small tables that are frequently accessed.
    <b>Synchronizing local buffers</b>
    The table buffers reside locally on each application server in the system. However, this makes it necessary for the buffer administration to transfer all changes made to buffered objects to all the application servers of the system.
    If a buffered table is modified, it is updated synchronously in the buffer of the application server from which the change was made. The buffers of the whole network, that is, the buffers of all the other application servers, are synchronized with an asynchronous procedure.
    Entries are written in a central database table (DDLOG) after each table modification that could be buffered. Each application server reads these entries at fixed time intervals.
    If entries are found that show a change to the data buffered by this server, this data is invalidated. If this data is accessed again, it is read directly from the database. In such an access, the table can then be loaded to the buffer again.

  • DB2 Transaction log Problem after set db manuell to Rollforward

    Hello,
    I have a problem when set the db2 manuell in rollforward mode. After I set the command db2rfpen ON E35 my database (E35) is in rollforward mode.
    Now I can see with command "db2 rollforward db E35 query status" the Last committed transaction
    but the timestamp of the Last committed transaction is 2106-02-07-06.28.15.000000 UTC
    but we do not have year 2106!!
    did someone have similar issue or a solution for my problem??
    Is it possible to manuell update the table via SQL? But I dont know which table i should update..
    Thanks in advanced.
    Robin

    Hi,
    following output of db2 get snapshot for all databases because db2 get snapshot for database E35 does not work..
    there I think the timestamp is also ok. Thanks for your help!
    regards
    Robin
                  Database Snapshot
    Database name                              = E35
    Database path                              = /db2/E35/db2e35/NODE0000/SQL00001/MEMBER0000/
    Input database alias                       =
    Database status                            = Active
    Catalog database partition number          = 0
    Catalog network node name                  = srvnetapp07
    Operating system running at database server= LINUXAMD64
    Location of the database                   = Local
    First database connect timestamp           = 08/11/2014 12:16:58.594371
    Last reset timestamp                       =
    Last backup timestamp                      = 08/08/2014 09:57:42.000000
    Snapshot timestamp                         = 08/11/2014 12:17:46.494342
    Number of automatic storage paths          = 4
    Automatic storage path                     = /db2/E35/sapdata1
          Node number                          = 0
          State                                = In Use
          File system ID                       = 64782
          Storage path free space (bytes)      = 23376351232
          File system used space (bytes)       = 3045990400
          File system total space (bytes)      = 26422341632
    Automatic storage path                     = /db2/E35/sapdata2
          Node number                          = 0
          State                                = In Use
          File system ID                       = 64783
          Storage path free space (bytes)      = 23376351232
          File system used space (bytes)       = 3045990400
          File system total space (bytes)      = 26422341632
    Automatic storage path                     = /db2/E35/sapdata3
          Node number                          = 0
          State                                = In Use
          File system ID                       = 64784
          Storage path free space (bytes)      = 23376351232
          File system used space (bytes)       = 3045990400
          File system total space (bytes)      = 26422341632
    Automatic storage path                     = /db2/E35/sapdata4
          Node number                          = 0
          State                                = In Use
          File system ID                       = 64785
          Storage path free space (bytes)      = 23376351232
          File system used space (bytes)       = 3045990400
          File system total space (bytes)      = 26422341632
    High water mark for connections            = 13
    Application connects                       = 9
    Secondary connects total                   = 11
    Applications connected currently           = 1
    Appls. executing in db manager currently   = 0
    Agents associated with applications        = 11
    Maximum agents associated with applications= 13
    Maximum coordinating agents                = 13
    Number of Threshold Violations             = 0
    Locks held currently                       = 29
    Lock waits                                 = 2
    Time database waited on locks (ms)         = 56
    Lock list memory in use (Bytes)            = 77568
    Deadlocks detected                         = 0
    Lock escalations                           = 0
    Exclusive lock escalations                 = 0
    Agents currently waiting on locks          = 0
    Lock Timeouts                              = 0
    Number of indoubt transactions             = 0
    Total Private Sort heap allocated          = 0
    Total Shared Sort heap allocated           = 6
    Shared Sort heap high water mark           = 245
    Post threshold sorts (shared memory)       = 0
    Total sorts                                = 2
    Total sort time (ms)                       = 2
    Sort overflows                             = 0
    Active sorts                               = 0
    Buffer pool data logical reads             = 68507
    Buffer pool data physical reads            = 1312
    Buffer pool temporary data logical reads   = 0
    Buffer pool temporary data physical reads  = 0
    Asynchronous pool data page reads          = 899
    Buffer pool data writes                    = 0
    Asynchronous pool data page writes         = 0
    Buffer pool index logical reads            = 52871
    Buffer pool index physical reads           = 449
    Buffer pool temporary index logical reads  = 0
    Buffer pool temporary index physical reads = 0
    Asynchronous pool index page reads         = 0
    Buffer pool index writes                   = 0
    Asynchronous pool index page writes        = 0
    Buffer pool xda logical reads              = 0
    Buffer pool xda physical reads             = 0
    Buffer pool temporary xda logical reads    = 0
    Buffer pool temporary xda physical reads   = 0
    Buffer pool xda writes                     = 0
    Asynchronous pool xda page reads           = 0
    Asynchronous pool xda page writes          = 0
    Total buffer pool read time (milliseconds) = 4912
    Total buffer pool write time (milliseconds)= 0
    Total elapsed asynchronous read time       = 3219
    Total elapsed asynchronous write time      = 0
    Asynchronous data read requests            = 454
    Asynchronous index read requests           = 0
    Asynchronous xda read requests             = 0
    No victim buffers available                = 0
    LSN Gap cleaner triggers                   = 0
    Dirty page steal cleaner triggers          = 0
    Dirty page threshold cleaner triggers      = 0
    Time waited for prefetch (ms)              = 982
    Unread prefetch pages                      = 0
    Direct reads                               = 986
    Direct writes                              = 2
    Direct read requests                       = 77
    Direct write requests                      = 1
    Direct reads elapsed time (ms)             = 243
    Direct write elapsed time (ms)             = 0
    Database files closed                      = 0
    Host execution elapsed time                = 5.785568
    Commit statements attempted                = 16
    Rollback statements attempted              = 2
    Dynamic statements attempted               = 6950
    Static statements attempted                = 23
    Failed statement operations                = 0
    Select SQL statements executed             = 6936
    Xquery statements executed                 = 0
    Update/Insert/Delete statements executed   = 6
    DDL statements executed                    = 0
    Inactive stmt history memory usage (bytes) = 0
    Internal automatic rebinds                 = 0
    Internal rows deleted                      = 0
    Internal rows inserted                     = 0
    Internal rows updated                      = 0
    Internal commits                           = 21
    Internal rollbacks                         = 0
    Internal rollbacks due to deadlock         = 0
    Number of MDC table blocks pending cleanup = 0
    Rows deleted                               = 0
    Rows inserted                              = 0
    Rows updated                               = 13838
    Rows selected                              = 13897
    Rows read                                  = 141752
    Binds/precompiles attempted                = 0
    Log space available to the database (Bytes)= 333797877
    Log space used by the database (Bytes)     = 26523
    Maximum secondary log space used (Bytes)   = 0
    Maximum total log space used (Bytes)       = 37070
    Secondary logs allocated currently         = 0
    Log pages read                             = 0
    Log read time (sec.ns)                     = 0.000000000
    Log pages written                          = 13
    Log write time (sec.ns)                    = 0.006250000
    Number write log IOs                       = 9
    Number read log IOs                        = 0
    Number partial page log IOs                = 7
    Number log buffer full                     = 0
    Log data found in buffer                   = 0
    Log to be redone for recovery (Bytes)      = 26523
    Log accounted for by dirty pages (Bytes)   = 26523
    Node number                                = 0
    File number of first active log            = 90
    File number of last active log             = 94
    File number of current active log          = 90
    File number of log being archived          = Not applicable
    Package cache lookups                      = 6955
    Package cache inserts                      = 20
    Package cache overflows                    = 0
    Package cache high water mark (Bytes)      = 1026593
    Application section lookups                = 20824
    Application section inserts                = 29
    Catalog cache lookups                      = 740
    Catalog cache inserts                      = 55
    Catalog cache overflows                    = 0
    Catalog cache high water mark              = 429098
    Catalog cache statistics size              = 0
    Workspace Information
    Number of hash joins                       = 4
    Number of hash loops                       = 0
    Number of hash join overflows              = 0
    Number of small hash join overflows        = 0
    Post threshold hash joins (shared memory)  = 0
    Active hash joins                          = 0
    Number of OLAP functions                   = 0
    Number of OLAP function overflows          = 0
    Active OLAP functions                      = 0
    Statistic fabrications                          = 0
    Synchronous runstats                            = 0
    Asynchronous runstats                           = 0
    Total statistic fabrication time (milliseconds) = 0
    Total synchronous runstats time (milliseconds)  = 0
    Memory usage for database:
      Node number                                  = 0
        Memory Pool Type                           = Backup/Restore/Util Heap
           Current size (bytes)                    = 65536
           High water mark (bytes)                 = 65536
           Configured size (bytes)                 = 204800000
      Node number                                  = 0
        Memory Pool Type                           = Package Cache Heap
           Current size (bytes)                    = 1179648
           High water mark (bytes)                 = 1179648
           Configured size (bytes)                 = 472317952
      Node number                                  = 0
        Memory Pool Type                           = Other Memory
           Current size (bytes)                    = 196608
           High water mark (bytes)                 = 196608
           Configured size (bytes)                 = 20971520
      Node number                                  = 0
        Memory Pool Type                           = Catalog Cache Heap
           Current size (bytes)                    = 524288
           High water mark (bytes)                 = 524288
           Configured size (bytes)                 = 10485760
      Node number                                  = 0
        Memory Pool Type                           = Buffer Pool Heap
           Secondary ID                            = 1
           Current size (bytes)                    = 494010368
           High water mark (bytes)                 = 494010368
           Configured size (bytes)                 = 494010368
      Node number                                  = 0
        Memory Pool Type                           = Buffer Pool Heap
           Secondary ID                            = System 32k buffer pool
           Current size (bytes)                    = 1835008
           High water mark (bytes)                 = 1835008
           Configured size (bytes)                 = 1835008
      Node number                                  = 0
        Memory Pool Type                           = Buffer Pool Heap
           Secondary ID                            = System 16k buffer pool
           Current size (bytes)                    = 1572864
           High water mark (bytes)                 = 1572864
           Configured size (bytes)                 = 1572864
      Node number                                  = 0
        Memory Pool Type                           = Buffer Pool Heap
           Secondary ID                            = System 8k buffer pool
           Current size (bytes)                    = 1441792
           High water mark (bytes)                 = 1441792
           Configured size (bytes)                 = 1441792
      Node number                                  = 0
        Memory Pool Type                           = Buffer Pool Heap
           Secondary ID                            = System 4k buffer pool
           Current size (bytes)                    = 1376256
           High water mark (bytes)                 = 1376256
           Configured size (bytes)                 = 1376256
      Node number                                  = 0
        Memory Pool Type                           = Shared Sort Heap
           Current size (bytes)                    = 2359296
           High water mark (bytes)                 = 3932160
           Configured size (bytes)                 = 40435712
      Node number                                  = 0
        Memory Pool Type                           = Lock Manager Heap
           Current size (bytes)                    = 159645696
           High water mark (bytes)                 = 159645696
           Configured size (bytes)                 = 159711232
      Node number                                  = 0
        Memory Pool Type                           = Database Heap
           Current size (bytes)                    = 87687168
           High water mark (bytes)                 = 87687168
           Configured size (bytes)                 = 119472128
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 107
           Current size (bytes)                    = 65536
           High water mark (bytes)                 = 65536
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 106
           Current size (bytes)                    = 65536
           High water mark (bytes)                 = 65536
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 105
           Current size (bytes)                    = 65536
           High water mark (bytes)                 = 65536
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 104
           Current size (bytes)                    = 65536
           High water mark (bytes)                 = 65536
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 103
           Current size (bytes)                    = 65536
           High water mark (bytes)                 = 65536
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 102
           Current size (bytes)                    = 65536
           High water mark (bytes)                 = 65536
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 101
           Current size (bytes)                    = 196608
           High water mark (bytes)                 = 196608
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 100
           Current size (bytes)                    = 65536
           High water mark (bytes)                 = 65536
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 99
           Current size (bytes)                    = 65536
           High water mark (bytes)                 = 65536
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 98
           Current size (bytes)                    = 65536
           High water mark (bytes)                 = 65536
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Application Heap
           Secondary ID                            = 97
           Current size (bytes)                    = 131072
           High water mark (bytes)                 = 131072
           Configured size (bytes)                 = 1048576
      Node number                                  = 0
        Memory Pool Type                           = Applications Shared Heap
           Current size (bytes)                    = 458752
           High water mark (bytes)                 = 458752
           Configured size (bytes)                 = 81920000

  • Using search help icon for a button

    Hi Experts,
    For a Webdynpro layout I have created a button and I want to assign an icon/image similar to the search help image(two squares type).
    Is there any way to assign the webdynpro search help icon to a button?
    I was searching in ImageSource under Button property but did not find any similar image. Else Is there any option to upload and assign an image to the button?
    Thanks.

    Hi,
    Under properties of button press F4 in image source attribute, you can select standard SAP icons, if not you can upload icon to your web dynpro component and then press F4 and select Component images tab and select your icon.
    For uploading icons to web dynpro abap check this reference: [Displaying Logos in WDA|http://www.****************/Tutorials/WebDynproABAP/Logo/Page1.htm]
    Hope this helps u.,
    Thanks & Regards,
    Kiran.

Maybe you are looking for