Greylisting / Howto
Hi,
I am trying to install the greylisting whith the howto published by Topicdesk.
I am having issues install berkeleydb. Here is the error message (part of it it's so long I am not getting the top of the error message...
BerkeleyDB.c:6656: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6712: error: 'RETVAL' undeclared (first use in this function)
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor__cclose':
BerkeleyDB.c:6725: error: syntax error before 'db'
BerkeleyDB.xs:4614: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4614: error: syntax error before ')' token
BerkeleyDB.c:6729: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6732: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6735: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6752: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_DESTROY':
BerkeleyDB.c:6766: error: syntax error before 'db'
BerkeleyDB.xs:4632: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4632: error: syntax error before ')' token
BerkeleyDB.c:6772: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6775: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursorstatus':
BerkeleyDB.c:6803: error: syntax error before 'db'
BerkeleyDB.xs:4649: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4649: error: syntax error before ')' token
BerkeleyDB.c:6807: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6810: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6813: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6821: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_cdel':
BerkeleyDB.c:6837: error: syntax error before 'db'
BerkeleyDB.xs:4662: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4662: error: syntax error before ')' token
BerkeleyDB.c:6841: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6850: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6853: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6864: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_cget':
BerkeleyDB.c:6880: error: syntax error before 'db'
BerkeleyDB.xs:4678: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4678: error: syntax error before ')' token
BerkeleyDB.c:6886: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6895: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6898: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6909: error: 'DBOPFLAGSMASK' undeclared (first use in this function)
BerkeleyDB.c:6909: error: 'DBSETRECNO' undeclared (first use in this function)
BerkeleyDB.c:6912: error: 'dbrecnot' undeclared (first use in this function)
BerkeleyDB.c:6922: error: 'DBGETBOTH' undeclared (first use in this function)
BerkeleyDB.c:6929: error: 'DBT_B' has no member named 'flags'
BerkeleyDB.c:6930: error: 'DBT_B' has no member named 'dlen'
BerkeleyDB.c:6931: error: 'DBT_B' has no member named 'doff'
BerkeleyDB.xs:4685: error: 'DBT_B' has no member named 'flags'
BerkeleyDB.xs:4685: error: 'DBT_B' has no member named 'dlen'
BerkeleyDB.xs:4685: error: 'DBT_B' has no member named 'doff'
BerkeleyDB.c:6944: error: 'DBGETRECNO' undeclared (first use in this function)
BerkeleyDB.c:6946: error: 'DBJOINITEM' undeclared (first use in this function)
BerkeleyDB.c:6949: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_cpget':
BerkeleyDB.c:6965: error: syntax error before 'db'
BerkeleyDB.c:6195: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Common_dbsync':
BerkeleyDB.c:6221: error: syntax error before 'db'
BerkeleyDB.xs:4365: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4365: error: syntax error before ')' token
BerkeleyDB.c:6225: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6234: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6237: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c:6248: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Common_Txn':
BerkeleyDB.c:6262: error: syntax error before 'db'
BerkeleyDB.xs:4375: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4375: error: syntax error before ')' token
BerkeleyDB.c:6269: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6272: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c:6278: error: 'txn' undeclared (first use in this function)
BerkeleyDB.c:6284: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Commontruncate':
BerkeleyDB.c:6317: error: syntax error before 'db'
BerkeleyDB.xs:4398: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4398: error: syntax error before ')' token
BerkeleyDB.c:6323: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6326: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6329: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c:6354: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Commonassociate':
BerkeleyDB.c:6375: error: syntax error before 'db'
BerkeleyDB.xs:4426: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4426: error: syntax error before ')' token
BerkeleyDB.c:6382: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6385: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6388: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c:6394: error: 'secondary' undeclared (first use in this function)
BerkeleyDB.c:6397: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c:6427: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Common_associateforeign':
BerkeleyDB.c:6443: error: syntax error before 'db'
BerkeleyDB.xs:4457: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4457: error: syntax error before ')' token
BerkeleyDB.c:6451: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6454: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6457: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c:6463: error: 'secondary' undeclared (first use in this function)
BerkeleyDB.c:6466: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c:6492: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Commoncompact':
BerkeleyDB.xs:4483: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4483: error: syntax error before ')' token
BerkeleyDB.xs:4485: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6512: error: syntax error before 'db'
BerkeleyDB.c:6521: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6524: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c:6621: error: 'DBOPFLAGSMASK' undeclared (first use in this function)
BerkeleyDB.c:6621: error: 'DBGETRECNO' undeclared (first use in this function)
BerkeleyDB.c:6624: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor__cdup':
BerkeleyDB.c:6639: error: syntax error before 'db'
BerkeleyDB.xs:4556: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4556: error: syntax error before ')' token
BerkeleyDB.c:6644: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6653: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6656: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6712: error: 'RETVAL' undeclared (first use in this function)
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor__cclose':
BerkeleyDB.c:6725: error: syntax error before 'db'
BerkeleyDB.xs:4614: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4614: error: syntax error before ')' token
BerkeleyDB.xs:4701: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4701: error: syntax error before ')' token
BerkeleyDB.c:6972: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6981: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6984: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6995: error: 'DBOPFLAGSMASK' undeclared (first use in this function)
BerkeleyDB.c:6995: error: 'DBSETRECNO' undeclared (first use in this function)
BerkeleyDB.c:6998: error: 'dbrecnot' undeclared (first use in this function)
BerkeleyDB.c:7008: error: 'DBGETBOTH' undeclared (first use in this function)
BerkeleyDB.c:7015: error: 'DBT_B' has no member named 'flags'
BerkeleyDB.c:7016: error: 'DBT_B' has no member named 'dlen'
BerkeleyDB.c:7017: error: 'DBT_B' has no member named 'doff'
BerkeleyDB.c:7032: error: 'DBGETRECNO' undeclared (first use in this function)
BerkeleyDB.c:7040: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_cput':
BerkeleyDB.c:7056: error: syntax error before 'db'
BerkeleyDB.xs:4730: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4730: error: syntax error before ')' token
BerkeleyDB.c:7062: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7071: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:7074: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6729: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6732: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6735: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6752: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_DESTROY':
BerkeleyDB.c:6766: error: syntax error before 'db'
BerkeleyDB.xs:4632: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4632: error: syntax error before ')' token
BerkeleyDB.c:6772: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6775: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursorstatus':
BerkeleyDB.c:6803: error: syntax error before 'db'
BerkeleyDB.xs:4649: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4649: error: syntax error before ')' token
BerkeleyDB.c:6807: warning: ISO C90 forbids mixed declarations andBerkeleyDB.c:7087: error: 'dbrecnot' undeclared (first use in this function)
BerkeleyDB.c:7104: error: 'DBT' has no member named 'flags'
BerkeleyDB.c:7105: error: 'DBT' has no member named 'dlen'
BerkeleyDB.c:7106: error: 'DBT' has no member named 'doff'
BerkeleyDB.c:7116: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_ccount':
BerkeleyDB.c:7132: error: syntax error before 'db'
BerkeleyDB.xs:4745: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4745: error: syntax error before ')' token
BerkeleyDB.c:7137: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7146: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:7149: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:7168: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr__txnbegin':
BerkeleyDB.c:7183: error: syntax error before 'txnmgr'
BerkeleyDB.xs:4768: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4768: error: syntax error before ')' token
BerkeleyDB.c:7188: error: syntax error before 'RETVAL'
code
BerkeleyDB.c:6810: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6813: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6821: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_cdel':
BerkeleyDB.c:6837: error: syntax error before 'db'
BerkeleyDB.xs:4662: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4662: error: syntax error before ')' token
BerkeleyDB.c:6841: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6850: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6853: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6864: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_cget':
BerkeleyDB.c:6880: error: syntax error before 'db'
BerkeleyDB.xs:4678: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4678: error: syntax error befBerkeleyDB.c:7198: error: 'txnmgr' undeclared (first use in this function)
BerkeleyDB.c:7201: error: called object 'BerkeleyDB__TxnMgr' is not a function
BerkeleyDB.c:7207: error: 'pid' undeclared (first use in this function)
BerkeleyDB.c:7213: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.xs:4771: error: 'txn' undeclared (first use in this function)
BerkeleyDB.xs:4772: error: 'p_id' undeclared (first use in this function)
BerkeleyDB.xs:4790: error: 'RETVAL' undeclared (first use in this function)
BerkeleyDB.xs:4790: error: syntax error before ')' token
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgrstatus':
BerkeleyDB.c:7262: error: syntax error before 'mgr'
BerkeleyDB.xs:4807: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4807: error: syntax error before ')' token
BerkeleyDB.c:7266: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7269: error: 'mgr' undeclared (first use in this function)
BerkeleyDB.c:7272: error: called object 'BerkeleyDB__TxnMgr' is not a function
BerkeleyDB.c:7280: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr_DESTROY':
BerkeleyDB.c:7294: error: syntax error before 'mgr'
BerkeleyDB.xs:4818: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4818: error: syntax error before ')' token
BerkeleyDB.c:7300: error: 'mgr' undeclared (first use in this function)
BerkeleyDB.c:7303: error: called object 'BerkeleyDB__TxnMgr' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr_txnclose':
ore ')' token
BerkeleyDB.c:6886: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6895: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6898: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6909: error: 'DBOPFLAGSMASK' undeclared (first use in this function)
BerkeleyDB.c:6909: error: 'DBSETRECNO' undeclared (first use in this function)
BerkeleyDB.c:6912: error: 'dbrecnot' undeclared (first use in this function)
BerkeleyDB.c:6922: error: 'DBGETBOTH' undeclared (first use in this function)
BerkeleyDB.c:6929: error: 'DBT_B' has no member named 'flags'
BerkeleyDB.c:6930: error: 'DBT_B' has no member named 'dlen'
BerkeleyDB.c:6931: error: 'DBT_B' has no member named 'doff'
BerkeleyDB.xs:4685: error: 'DBT_B' has no member named 'flags'
BerkeleyDB.xs:4685: error: 'DBT_B' has no member named 'dlen'
BerkeleyDB.xs:4685: error: 'DBT_B' has no member named 'doff'
BerkeleyDB.c:6944: error: 'DBGETRECNO' undeclared (first use in this function)
BerkeleyDB.c:6946: error: 'DBJOINITEM' undeclared (first use in this function)
BerkeleyDB.c:6949: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_cpget':
BerkeleyDB.c:6965: error: syntax error before 'db'
BerkeleyDB.xs:4701: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4701: error: syntax error before ')' token
BerkeleyDB.c:6972: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:6981: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:6984: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:6995: error: 'DBOPFLAGSMASK' undeclared (first use in this function)
BerkeleyDB.c:6995: error: 'DBSETRECNO' undeclared (first use in this function)
BerkeleyDB.c:6998: error: 'dbrecnot' undeclared (first use in this function)
BerkeleyDB.c:7008: error: 'DBGETBOTH' undeclared (first use in this function)
BerkeleyDB.c:7324: error: syntax error before 'txnp'
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr_txncheckpoint':
BerkeleyDB.c:7352: error: syntax error before 'txnp'
BerkeleyDB.xs:4850: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4850: error: syntax error before ')' token
BerkeleyDB.c:7359: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7362: error: 'txnp' undeclared (first use in this function)
BerkeleyDB.c:7365: error: called object 'BerkeleyDB__TxnMgr' is not a function
BerkeleyDB.c:7378: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr_txnstat':
BerkeleyDB.c:7392: error: syntax error before 'txnp'
BerkeleyDB.xs:4857: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4857: error: syntax error before ')' token
BerkeleyDB.c:7399: error: 'txnp' undeclared (first use in this function)
BerkeleyDB.c:7402: error: called object 'BerkeleyDB__TxnMgr' is not a function
BerkeleyDB.xs:4860: error: 'DBTXNSTAT' undeclared (first use in this function)
BerkeleyDB.xs:4875: error: request for member 'sttimeckp' in something not a structure or union
BerkeleyDB.xs:4876: error: request for member 'stlasttxnid' in something not a structure or union
BerkeleyDB.xs:4877: error: request for member 'st_maxtxns' in something not a structure or union
BerkeleyDB.xs:4878: error: request for member 'st_naborts' in something not a structure or union
BerkeleyDB.xs:4879: error: request for member 'st_nbegins' in something not a structure or union
BerkeleyDB.xs:4880: error: request for member 'st_ncommits' in something not a structure or union
BerkeleyDB.xs:4881: error: request for member 'st_nactive' in something not a structure or union
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr_txnopen':
BerkeleyDB.c:7457: error: syntax error before 'dbenv'
BerkeleyDB.c: In function 'XSBerkeleyDB__Txnstatus':
BerkeleyDB.c:7472: error: syntax error before 'tid'
BerkeleyDB.xs:4910: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4910: error: syntax error before ')' token
BerkeleyDB.c:7476: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7479: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7482: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c:7490: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_settimeout':
BerkeleyDB.c:7504: error: syntax error before 'txn'
BerkeleyDB.xs:4922: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4922: error: syntax error before ')' token
BerkeleyDB.c:7510: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7514: error: 'txn' undeclared (first use in this function)
BerkeleyDB.c:7517: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_set_txmax':
BerkeleyDB.c:7550: error: syntax error before 'txn'
BerkeleyDB.c:7015: error: 'DBT_B' has no member named 'flags'
BerkeleyDB.c:7016: error: 'DBT_B' has no member named 'dlen'
BerkeleyDB.c:7017: error: 'DBT_B' has no member named 'doff'
BerkeleyDB.c:7032: error: 'DBGETRECNO' undeclared (first use in this function)
BerkeleyDB.c:7040: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs:4939: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4939: error: syntax error before ')' token
BerkeleyDB.c:7555: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7559: error: 'txn' undeclared (first use in this function)
BerkeleyDB.c:7562: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_get_txmax':
BerkeleyDB.c:7589: error: syntax error before 'txn'
BerkeleyDB.xs:4956: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4956: error: syntax error before ')' token
BerkeleyDB.c:7594: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7598: error: 'txn' undeclared (first use in this function)
BerkeleyDB.c:7601: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_DESTROY':
BerkeleyDB.c:7631: error: syntax error before 'tid'
BerkeleyDB.xs:4973: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4973: error: syntax error before ')' token
BerkeleyDB.c:7637: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7640: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_txnunlink':
BerkeleyDB.c:7671: error: syntax error before 'dbenv'
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_txnprepare':
BerkeleyDB.c:7695: error: syntax error before 'tid'
BerkeleyDB.xs:5007: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5007: error: syntax error before ')' token
BerkeleyDB.c:7699: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_cput':
BerkeleyDB.c:7056: error: syntax error before 'db'
BerkeleyDB.xs:4730: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4730: error: syntax error before ')' token
BerkeleyDB.c:7062: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7071: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:7074: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:7087: error: 'dbrecnot' undeclared (first use in this function)
BerkeleyDB.c:7104: error: 'DBT' has no member named 'flags'
BerkeleyDB.c:7105: error: 'DBT' has no member named 'dlen'
BerkeleyDB.c:7106: error: 'DBT' has no member named 'doff'
BerkeleyDB.c:7116: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Cursor_ccount':
BerkeleyDB.c:7132: error: syntax error before 'db'
BerkeleyDB.xs:4745: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4745: error: syntax error before ')' token
BerkeleyDB.c:7137: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7146: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:7149: error: called object 'BerkeleyDB__Cursor' is not a function
BerkeleyDB.c:7168: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr__txnbegin':
BerkeleyDB.c:7183: error: syntax error before 'txnmgr'
BerkeleyDB.xs:4768: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4768: error: syntax error before ')' token
BerkeleyDB.c:7188: error: syntax error before 'RETVAL'
BerkeleyDB.c:7198: error: 'txnmgr' undeclared (first use in this function)
BerkeleyDB.c:7201: error: called object 'BerkeleyDB__TxnMgr' is not a function
BerkeleyDB.c:7207: error: 'pid' undeclared (first use in this function)
BerkeleyDB.c:7213: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.xs:4771: error: 'txn' undeclared (first use in this function)
BerkeleyDB.xs:4772: error: 'p_id' undeclared (first use in this function)
BerkeleyDB.xs:4790: error: 'RETVAL' undeclared (first use in this function)
BerkeleyDB.xs:4790: error: syntax error before ')' token
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgrstatus':
BerkeleyDB.c:7262: error: syntax error before 'mgr'
BerkeleyDB.xs:4807: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4807: error: syntax error before ')' token
BerkeleyDB.c:7266: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7269: error: 'mgr' undeclared (first use in this function)
BerkeleyDB.c:7272: error: called object 'BerkeleyDB__TxnMgr' is not a function
BerkeleyDB.c:7280: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr_DESTROY':
BerkeleyDB.c:7294: error: syntax error before 'mgr'
BerkeleyDB.xs:4818: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4818: error: syntax error before ')' token
BerkeleyDB.c:7300: error: 'mgr' undeclared (first use in this function)
BerkeleyDB.c:7303: error: called object 'BerkeleyDB__TxnMgr' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr_txnclose':
BerkeleyDB.c:7324: error: syntax error before 'txnp'
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr_txncheckpoint':
BerkeleyDB.c:7352: error: syntax error before 'txnp'
BerkeleyDB.xs:4850: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4850: error: syntax error before ')' token
BerkeleyDB.c:7359: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7362: error: 'txnp' undeclared (first use in this function)
BerkeleyDB.c:7365: error: called object 'BerkeleyDB__TxnMgr' is not a function
BerkeleyDB.c:7378: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr_txnstat':
BerkeleyDB.c:7392: error: syntax error before 'txnp'
BerkeleyDB.xs:4857: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4857: error: syntax error before ')' token
BerkeleyDB.c:7399: error: 'txnp' undeclared (first use in this function)
BerkeleyDB.c:7402: error: called object 'BerkeleyDB__TxnMgr' is not a function
BerkeleyDB.xs:4860: error: 'DBTXNSTAT' undeclared (first use in this function)
BerkeleyDB.xs:4875: error: request for member 'sttimeckp' in something not a structure or union
BerkeleyDB.xs:4876: error: request for member 'stlasttxnid' in something not a structure or union
BerkeleyDB.xs:4877: error: request for member 'st_maxtxns' in something not a structure or union
BerkeleyDB.xs:4878: error: request for member 'st_naborts' in something not a structure or union
BerkeleyDB.xs:4879: error: request for member 'st_nbegins' in something not a structure or union
BerkeleyDB.xs:4880: error: request for member 'st_ncommits' in something not a structure or union
BerkeleyDB.xs:4881: error: request for member 'st_nactive' in something not a structure or union
BerkeleyDB.c: In function 'XSBerkeleyDB__TxnMgr_txnopen':
BerkeleyDB.c:7457: error: syntax error before 'dbenv'
BerkeleyDB.c: In function 'XSBerkeleyDB__Txnstatus':
BerkeleyDB.c:7472: error: syntax error before 'tid'
BerkeleyDB.xs:4910: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4910: error: syntax error before ')' token
BerkeleyDB.c:7476: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7479: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7482: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c:7490: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_settimeout':
BerkeleyDB.c:7504: error: syntax error before 'txn'
BerkeleyDB.xs:4922: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4922: error: syntax error before ')' token
BerkeleyDB.c:7510: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7514: error: 'txn' undeclared (first use in this function)
BerkeleyDB.c:7517: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_set_txmax':
BerkeleyDB.c:7550: error: syntax error before 'txn'
BerkeleyDB.xs:4939: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4939: error: syntax error before ')' token
BerkeleyDB.c:7555: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7559: error: 'txn' undeclared (first use in this function)
BerkeleyDB.c:7562: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_get_txmax':
BerkeleyDB.c:7589: error: syntax error before 'txn'
BerkeleyDB.xs:4956: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4956: error: syntax error before ')' token
BerkeleyDB.c:7594: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7598: error: 'txn' undeclared (first use in this function)
BerkeleyDB.c:7601: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_DESTROY':
BerkeleyDB.c:7631: error: syntax error before 'tid'
BerkeleyDB.xs:4973: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:4973: error: syntax error before ')' token
BerkeleyDB.c:7637: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7640: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_txnunlink':
BerkeleyDB.c:7671: error: syntax error before 'dbenv'
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_txnprepare':
BerkeleyDB.c:7695: error: syntax error before 'tid'
BerkeleyDB.xs:5007: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5007: error: syntax error before ')' token
BerkeleyDB.c:7699: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7702: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7705: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c:7715: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn__txncommit':
BerkeleyDB.c:7739: error: syntax error before 'tid'
BerkeleyDB.xs:5025: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5025: error: syntax error before ')' token
BerkeleyDB.c:7743: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7752: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7755: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c:7767: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn__txnabort':
BerkeleyDB.c:7786: error: syntax error before 'tid'
BerkeleyDB.xs:5040: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5040: error: syntax error before ')' token
BerkeleyDB.c:7790: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7793: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7796: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c:7808: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn__txndiscard':
BerkeleyDB.c:7831: error: syntax error before 'tid'
BerkeleyDB.xs:5060: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5060: error: syntax error before ')' token
BerkeleyDB.c:7836: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7839: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7842: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c:7860: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_txnid':
BerkeleyDB.c:7879: error: syntax error before 'tid'
BerkeleyDB.xs:5075: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5075: error: syntax error before ')' token
BerkeleyDB.c:7883: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7887: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7890: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB___tiedHashFIRSTKEY':
BerkeleyDB.c:7909: error: syntax error before 'db'
BerkeleyDB.xs:5083: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5083: error: syntax error before ')' token
BerkeleyDB.c:7913: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7917: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:7920: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.xs:5088: error: 'DBC' undeclared (first use in this function)
BerkeleyDB.xs:5107: error: 'DB_FIRST' undeclared (first use in this function)
BerkeleyDB.xs:5111: error: 'DB_NOTFOUND' undeclared (first use in this function)
BerkeleyDB.c:7702: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7705: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c:7715: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn__txncommit':
BerkeleyDB.c:7739: error: syntax error before 'tid'
BerkeleyDB.xs:5025: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5025: error: syntax error before ')' token
BerkeleyDB.c:7743: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7752: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7755: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c:7767: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn__txnabort':
BerkeleyDB.c:7786: error: syntax error before 'tid'
BerkeleyDB.xs:5040: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5040: error: syntax error before ')' token
BerkeleyDB.c:7790: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7793: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7796: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c:7808: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn__txndiscard':
BerkeleyDB.c:7831: error: syntax error before 'tid'
BerkeleyDB.xs:5060: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5060: error: syntax error before ')' token
BerkeleyDB.c:7836: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7839: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7842: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c:7860: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.c: In function 'XSBerkeleyDB__Txn_txnid':
BerkeleyDB.c:7879: error: syntax error before 'tid'
BerkeleyDB.xs:5075: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5075: error: syntax error before ')' token
BerkeleyDB.c:7883: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7887: error: 'tid' undeclared (first use in this function)
BerkeleyDB.c:7890: error: called object 'BerkeleyDB__Txn' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB___tiedHashFIRSTKEY':
BerkeleyDB.c:7909: error: syntax error before 'db'
BerkeleyDB.xs:5083: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5083: error: syntax error before ')' token
BerkeleyDB.c:7913: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7917: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:7920: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.xs:5088: error: 'DBC' undeclared (first use in this function)
BerkeleyDB.xs:5107: error: 'DB_FIRST' undeclared (first use in this function)
BerkeleyDB.xs:5111: error: 'DB_NOTFOUND' undeclared (first use in this function)
BerkeleyDB.c: In function 'XSBerkeleyDB___tiedHashNEXTKEY':
BerkeleyDB.c:7971: error: syntax error before 'db'
BerkeleyDB.xs:5126: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5126: error: syntax error before ')' token
BerkeleyDB.c:7976: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7980: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:7983: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.xs:5134: error: 'DBTKEY' has no member named 'flags'
BerkeleyDB.xs:5136: error: 'DB_NEXT' undeclared (first use in this function)
BerkeleyDB.xs:5139: error: 'DB_NOTFOUND' undeclared (first use in this function)
BerkeleyDB.c: In function 'XSBerkeleyDB___tiedArrayFETCHSIZE':
BerkeleyDB.c:8019: error: syntax error before 'db'
BerkeleyDB.xs:5153: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5153: error: syntax error before ')' token
BerkeleyDB.c:8023: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8027: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:8030: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c: In function 'XSBerkeleyDB__Common_db_createsequence':
BerkeleyDB.c:8051: error: syntax error before 'db'
BerkeleyDB.xs:5168: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5168: error: syntax error before ')' token
BerkeleyDB.c:8056: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8059: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:8062: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequenceopen':
BerkeleyDB.xs:5199: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5199: error: syntax error before ')' token
BerkeleyDB.c:8112: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8141: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequenceclose':
BerkeleyDB.xs:5216: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5216: error: syntax error before ')' token
BerkeleyDB.c:8160: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8192: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequenceremove':
BerkeleyDB.xs:5238: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5238: error: syntax error before ')' token
BerkeleyDB.c:8211: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8241: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__SequenceDESTROY':
BerkeleyDB.xs:5257: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5257: error: syntax error before ')' token
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequenceget':
BerkeleyDB.xs:5272: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5272: error: syntax error before ')' token
BerkeleyDB.c:8294: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c: In function 'XSBerkeleyDB___tiedHashNEXTKEY':
BerkeleyDB.c:7971: error: syntax error before 'db'
BerkeleyDB.xs:5126: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5126: error: syntax error before ')' token
BerkeleyDB.c:7976: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:7980: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:7983: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.xs:5134: error: 'DBTKEY' has no member named 'flags'
BerkeleyDB.xs:5136: error: 'DB_NEXT' undeclared (first use in this function)
BerkeleyDB.xs:5139: error: 'DB_NOTFOUND' undeclared (first use in this function)
BerkeleyDB.c: In function 'XSBerkeleyDB___tiedArrayFETCHSIZE':
BerkeleyDB.c:8019: error: syntax error before 'db'
BerkeleyDB.xs:5153: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5153: error: syntax error before ')' token
BerkeleyDB.c:8023: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8027: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:8030: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.c:8330: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_getkey':
BerkeleyDB.xs:5290: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5290: error: syntax error before ')' token
BerkeleyDB.c:8349: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8373: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_initialvalue':
BerkeleyDB.xs:5310: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5310: error: syntax error before ')' token
BerkeleyDB.c:8393: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8420: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_setcachesize':
BerkeleyDB.xs:5327: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5327: error: syntax error before ')' token
BerkeleyDB.c:8439: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8460: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_getcachesize':
BerkeleyDB.xs:5344: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5344: error: syntax error before ')' token
BerkeleyDB.c:8479: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8503: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_setflags':
BerkeleyDB.xs:5362: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5362: error: syntax error before ')' token
BerkeleyDB.c:8522: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8543: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_getflags':
BerkeleyDB.xs:5379: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5379: error: syntax error before ')' token
BerkeleyDB.c:8562: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8586: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'boot_BerkeleyDB':
BerkeleyDB.xs:5414: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5414: error: syntax error before ')' token
BerkeleyDB.xs:5417: error: 'DBVERSIONMAJOR' undeclared (first use in this function)
BerkeleyDB.xs:5418: error: 'DBVERSIONMINOR' undeclared (first use in this function)
BerkeleyDB.xs:5418: error: 'DBVERSIONPATCH' undeclared (first use in this function)
BerkeleyDB.xs:5434: error: 'dbrecnot' undeclared (first use in this function)
BerkeleyDB.c: In function 'XSBerkeleyDB__Common_db_createsequence':
BerkeleyDB.c:8051: error: syntax error before 'db'
BerkeleyDB.xs:5168: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5168: error: syntax error before ')' token
BerkeleyDB.c:8056: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8059: error: 'db' undeclared (first use in this function)
BerkeleyDB.c:8062: error: called object 'BerkeleyDB__Common' is not a function
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequenceopen':
BerkeleyDB.xs:5199: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5199: error: syntax error before ')' token
BerkeleyDB.c:8112: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8141: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequenceclose':
BerkeleyDB.xs:5216: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5216: error: syntax error before ')' token
BerkeleyDB.c:8160: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8192: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequenceremove':
BerkeleyDB.xs:5238: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5238: error: syntax error before ')' token
BerkeleyDB.c:8211: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8241: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__SequenceDESTROY':
BerkeleyDB.xs:5257: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5257: error: syntax error before ')' token
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequenceget':
BerkeleyDB.xs:5272: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5272: error: syntax error before ')' token
BerkeleyDB.c:8294: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8330: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_getkey':
BerkeleyDB.xs:5290: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5290: error: syntax error before ')' token
BerkeleyDB.c:8349: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8373: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_initialvalue':
BerkeleyDB.xs:5310: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5310: error: syntax error before ')' token
BerkeleyDB.c:8393: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8420: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_setcachesize':
BerkeleyDB.xs:5327: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5327: error: syntax error before ')' token
BerkeleyDB.c:8439: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8460: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_getcachesize':
BerkeleyDB.xs:5344: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5344: error: syntax error before ')' token
BerkeleyDB.c:8479: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8503: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_setflags':
BerkeleyDB.xs:5362: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5362: error: syntax error before ')' token
BerkeleyDB.c:8522: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8543: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'XSBerkeleyDB__Sequence_getflags':
BerkeleyDB.xs:5379: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5379: error: syntax error before ')' token
BerkeleyDB.c:8562: warning: ISO C90 forbids mixed declarations and code
BerkeleyDB.c:8586: warning: pointer/integer type mismatch in conditional expression
BerkeleyDB.xs: In function 'boot_BerkeleyDB':
BerkeleyDB.xs:5414: error: 'my_cxtp' undeclared (first use in this function)
BerkeleyDB.xs:5414: error: syntax error before ')' token
BerkeleyDB.xs:5417: error: 'DBVERSIONMAJOR' undeclared (first use in this function)
BerkeleyDB.xs:5418: error: 'DBVERSIONMINOR' undeclared (first use in this function)
BerkeleyDB.xs:5418: error: 'DBVERSIONPATCH' undeclared (first use in this function)
BerkeleyDB.xs:5434: error: 'dbrecnot' undeclared (first use in this function)
lipo: can't open input file: /var/tmp//ccGoTbzX.out (No such file or directory)
make: * [BerkeleyDB.o] Error 1
/usr/bin/make -- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible
I have found what might be the way to fix. Anyone has any idea?
Inside the db-4.5.20/perl/BerkeleyDB/config.in file are these lines:
# 1. Where is the file db.h?
INCLUDE = /usr/local/BerkeleyDB/include
# 2. Where is libdb?
LIB = /usr/local/BerkeleyDB/lib
They look pretty good... except for the fact that the BDB make installed
everything under
/usr/local/BerkeleyDB.4.5
and no, it didn't bother with a symlink.
Once I'd made that link
/usr/local/BerkeleyDB -> /usr/local/BerkeleyDB.4.5
the build ran very quickly and without errors.
Cheers
Ben
Indeed, at this point if you don't know how to un-do what it is you have done,
quite honestly your best bet is to do a full wipe & reinstall, and if you are going to use
anyone's instructions (typically, tutorials), then make sure to fully read it from start to finish,
and not install things that are not meant to be installed.
If you know what you've done and why, with all due respect you should already be on your way to solving your conundrum(s), and not even needing to ask for any help here
Similar Messages
-
Hi all,
the number of SAP Business One HowTos is growing.
If you need a hint, you might consider checking here:
http://www.itwiki.net/ow.asp?SboHowTo
Itwiki is a non-commercial wiki made from developers for developers.
Ibai has just added another HowTo.
Lutz MorrienJust wondering...
Is anyone interested in these postings?
I am just trying to pass on information with them, but if they are just annoying, I will stop posting them.
Lutz Morrien -
HOWTOs to setup VoIP don't work on my N81
Hello,
I have a Nokia N81 and I want to setup SIP on it, using my VoipBuster account.
I've successfully configured this account a thousand times on different systems, but it seems impossible to get it to work with my Nokia phone, even after following the HOWTOs everybody reported to work with their phones:
http://www.poromenos.org/node/74
http://forums.whirlpool.net.au/forum-replies-archive.cfm/751303.html
I am 200% sure that I've entered the details correctly and added the relevant profile in "Tools -> Settings -> Connection -> Internet Tel.", but when I go to "Tools -> Connectivity -> Internet Tel.", select my home network and try to connect, I get this error message: "Unable to connect to the connection network". And if I try to call a number via "Internet call", I get "Internet telephone service not available".
What may be going wrong? Does this /smartphone/ store error logs like operating systems do (they may help to find the problem)?
The other weird thing I've noticed is that the phone *always* overrides "Transport Type" to "Auto" in both the proxy and registrar sections. I've tried many times to set it to UDP, but it always sets it to "Auto".
Just in case: I can use this account with the software I have installed on my computer (from the same network) and my Nokia phone has no problem to access the Internet via my home network.
Thanks in advance.
Message Edited by gnarea on 15-Sep-2008 05:45 PMHello,
I have a Nokia N81 and I want to setup SIP on it, using my VoipBuster account.
I've successfully configured this account a thousand times on different systems, but it seems impossible to get it to work with my Nokia phone, even after following the HOWTOs everybody reported to work with their phones:
http://www.poromenos.org/node/74
http://forums.whirlpool.net.au/forum-replies-archive.cfm/751303.html
I am 200% sure that I've entered the details correctly and added the relevant profile in "Tools -> Settings -> Connection -> Internet Tel.", but when I go to "Tools -> Connectivity -> Internet Tel.", select my home network and try to connect, I get this error message: "Unable to connect to the connection network". And if I try to call a number via "Internet call", I get "Internet telephone service not available".
What may be going wrong? Does this /smartphone/ store error logs like operating systems do (they may help to find the problem)?
The other weird thing I've noticed is that the phone *always* overrides "Transport Type" to "Auto" in both the proxy and registrar sections. I've tried many times to set it to UDP, but it always sets it to "Auto".
Just in case: I can use this account with the software I have installed on my computer (from the same network) and my Nokia phone has no problem to access the Internet via my home network.
Thanks in advance.
Message Edited by gnarea on 15-Sep-2008 05:45 PM -
Oracle 11gR2 Express Edition on Linux Ubuntu 11.10 howto
h1. Oracle 11gR2 Express Edition on Linux Ubuntu 11.10 howto
Author: Dude
Version: D
Last modified: 14-Jan-2012
You are welcome to add comments, but please do not discuss your installation issues in this thread. If you have a question about the instructions, please add a simple note to the link of your own thread. The instructions are the result of my own research and development. If you would like to use any of the information for your own blog or website, please include a link to this reference to include future changes.
Oracle 11gR2 Express Edition on Linux Ubuntu 11.10 howto
h2. Purpose
This document outlines instructions how to install Oracle XE under Ubuntu 11.10.
Ubuntu or Debian based Linux is not on the list of supported operation systems according to the Oracle documentation at http://download.oracle.com/docs/cd/E17781_01/install.112/e18802/toc.htm. You may want to consider virtualization software like Oracle Virtualbox and install Oracle Enterprise Linux as a free and professional alternative to installing XE under Ubuntu. You can also download pre-build virtual machines that include Oracle XE. You can browse http://otn.oracle.com/community/developer-vm for more information.
h2. Topics
h4. 1) Install Linux Ubuntu
h4. 2) Remote Terminal
h4. 3) Install Additional Software
h4. 4) Managing Swap Space
h4. 5) Modify Kernel Parameters
h4. 6) Oracle Home Directory
...a) Resize the Root Partition
...b) Setup External Storage
h4. 7) ORA-00845: MEMORY_TARGET
h4. 8) Installing Oracle 11gR2 Express Edition
h4. 9) Post-Installation
h4. 10) Tips and Troubleshooting
...a) Port 1521 appears to be in use by another application
...b) cannot touch `/var/lock/subsys/listener': No such file or directory
...c) ORA-00845: MEMORY_TARGET
...d) Apex ADMIN password
...e) SYS and SYSTEM password
...f) Uninstall Oracle 11g XE
...g) Reconfigure Oracle 11g XE
...h) Gnome Classic desktop
...i) Unix vi cursor keys
...j) Backup Database
h4. 11) History
h4. 12) References
h2. 1) Install Linux Ubuntu
The following assumes you have installed Ubuntu 11.10 Desktop Edition for AMD 64-bit, or upgraded from a previous version. Keep in mind that Oracle 11gR2 Express Edition is only available for 64-bit architecture. It is not necessarily a requirement, but I would not bother to install Oracle 11gR2 XE on a system with less than 2 GB of RAM installed. You can download Ubuntu for free at: http://www.ubuntu.com/download/ubuntu and install it using the default settings provided.
You can apply the latest OS patch-sets by clicking the power button icon in the upper right hand corner of the screen and selecting "Updates available..."
h2. 2) Remote Terminal
You will need command line access to perform the installation tasks. Select the top "Dash Home" button of the Unity toolbar and enter the word "terminal", or use CTRL-ALT-t. If you prefer to open a remote terminal session use SSH. Ubuntu does not come with a secure shell login by default. To install it, use the following command:
sudo apt-get install openssh-serverYou cannot login as root unless you set a root password using the "sudo passwd root" command. However, you can get root user access using the "sudo" command, which requires only to re-enter the password of your personal account. Access to "sudo" is controlled by the /etc/sudoers file.
The best way to establish a remote command line session as root is to login with your personal account, e.g.: ssh [email protected], and then type "sudo su -" to become root, or use "sudo <command>" to execute individual commands. If your account does not have "sudo" access you can login as root using "su - root", but will need to know the root password.
h2. 3) Install Additional Software
Oracle 11g Express Edition requires additional software that is not installed by default:
sudo apt-get install alien libaio1 unixodbch2. 4) Managing Swap Space
Oracle demands that the minimum swap space for Oracle Database XE is 2 GB (2095100 KB) or twice the size of RAM, whichever is lesser. Enter the following shell command to verify your swap space:
cat /proc/meminfo | grep -i swap
SwapCached: 0 kB
SwapTotal: 2095100 kB
SwapFree: 2095100 kBYou can increase available swap space by using a swap file as long as disk space permits. The advantage of a swap file versus a swap partition is flexible space management because you can add or delete swap space on demand as necessary. The following will create and enable an additional 1 GB swap file at system startup, located in the /home directory:
Login as root:
sudo su -Enter the following commands:
dd if=/dev/zero of=/home/swapfile bs=1024 count=1048576
mkswap /home/swapfile
swapon /home/swapfile
swapon -aCreate a backup of the original "fstab" file and add the new swap file:
cp /etc/fstab /etc/fstab.backup_`date +%N`
echo '/home/swapfile swap swap defaults 0 0' >> /etc/fstabExit from root and verify the new swap space:
exit
swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2095100 0 -1
/home/swapfile file 1048572 0 -2Swap space is not a substitute for installed RAM. Swap space is a safeguard that allows the system to move idle processes to disk before the OOM killer will begin to terminate processes in order to free up enough real memory to keep the system operational. The general rule for sizing the swap space depends on the size of installed RAM. If your system has less then 4 GB of RAM the swap space should usually be at least twice this size. If you have more than 8 GB of RAM installed you may consider to use an equal size as swap space. The more RAM you have installed, the less likely you are going to run into memory starvation, and the less likely you are going to need swap space, unless you have a bad process.
h2. 5) Modify Kernel Parameters
Oracle 11gR2 Express Edition requires the following Kernel parameters. Enter the commands exactly as shown:
Login as root:
sudo su -Cut & paste the following directly into a command shell (not a text editor):
cat > /etc/sysctl.d/60-oracle.conf <<-EOF
# Oracle 11g XE kernel parameters
fs.file-max=6815744
net.ipv4.ip_local_port_range=9000 65500
kernel.sem=250 32000 100 128
# kernel.shmmax=429496729
kernel.shmmax=107374183
EOFLoad and verify the new kernel parameters:
service procps start
sudo sysctl -q fs.file-max
sudo sysctl -q kernel.shmmax
sudo sysctl -q net.ipv4.ip_local_port_range
sudo sysctl -q kernel.sem The SHMMAX kernel parameter defines the upper memory limit of a process. It is a safeguard to stop a bad process from using all memory and causing RAM starvation. The Linux default is 32 MB. The official Oracle XE installation documentation suggests a value of 4 GB -1 bytes (429496729). Since Oracle 11g XE has a 1 GB memory limit, a smaller footprint will be a better safeguard for the complete system. Setting the SHMMAX parameter to 107374183 will be sufficient.
h2. 6) Oracle Home Directory
At the time of this writing, Enterprise Linux 6 is not supported for Oracle database yet. It is therefore not possible to confirm Oracle ext4 filesystem compatibility, which is default in Ubuntu 11. According to various information, ext4 may cause a performance problem for Oracle 11g database. The following will show you how to add a ext3 partition to your existing setup.
h3. 6.a) Resize the Root Partition
Provided you have sufficient free disk space, you should be able to resize the root partition to create an extra ext3 filesystem. Considering the 11 GB user datafile limit of the Express Edition, 18 GB should be more than enough.
You can use the free Gparted Live CD to shrink your startup volume. Gparted downloads are available at http://sourceforge.net/projects/gparted/files/gparted-live-stable. When burning the CD, pay attention to burn the raw .iso image and not the possibly "mounted" image. If you are using a virtual machine like Oracle Virtualbox, you can mount the .iso image directly. There are going to be a few prompts when the system starts from the CD, but you can press Return to accept the defaults.
When the Gparted window appears:
- Select your ext4 root partition, usually /dev/sda1
- Select the "Resize/Move" button from the toolbar.
- Enter 18000 into the "Free space following" field and press the Return key.
Be careful not not change the start of the partition!
- Click the "Resize/Move" of the dialog and then then the "Apply" toolbar button.
The process may take several minutes - do not abandon it!
- Select the new unallocated free space of ~ 18 GB and push the "New" button.
- Set the file system to "ext3" and label it "oraclexe" and click the "Add" button.
Be sure to label it oraclexe, otherwise the follow-up instructions will fail.
- Finally select "Apply from the toolbar to apply the changes.
- Quit "Gparted", select "Exit" from the desktop and choose "Reboot" to restart the system.
{code}
After the system has restarted, open a terminal command shell.
Login as root:
{code}
sudo su -
{code}
Backup "fstab" and add the UUID of the partition. The "tr" command remove the quotes:
{code}
cp /etc/fstab /etc/fstab_`date +%N`
uuid=`blkid | grep oraclexe | awk '{print $3}'`
uuid=`echo $uuid | tr -d '\042'`
echo $uuid
echo "$uuid /u01 ext3 errors=remount-ro 0 1" >> /etc/fstab
{code}
The UUID is a unique number and should look similar to:
{code}
UUID=d1db753e-b5dd-4a4c-a61e-259c69867b58
{code}
Restart the system:
{code}
reboot
{code}
Verify the success:
{code}
df -h /u01
{code}
h3. 6.b) Setup External Storage
If you prefer to setup an external drive to install Oracle XE, beware that it can be a fatal mistake to make an entry in /etc/fstab to automount your external storage device. An unavailable device in /etc/fstab will prevent a system startup and prompt for appropriate actions at the console.
The following is an example of how to prepare an external storage device to be used for Oracle 11g, including a script to automatically mount an external drive at system startup without the disadvantages of /etc/fstab. The script will also take into consideration that a device name might shift if you attach additional devices.
To find out which USB devices are connected:
{code}
sudo parted -l
{code}
Look for the device that matches your USB storage. For example: /dev/sdb1
{code}
Model: USB 2.0 Flash Disk (scsi)
Disk /dev/sdb: 2064MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 20.5kB 1929MB 1929MB hfs+ mystick
{code}
Initialize the device using ext3 filesystem - this will erase all data. The "-c" option will check for bad blocks (read-only), "-L" is the volume label:
{code}
sudo umount /dev/sdb1
sudo mkfs.ext3 -c -L oraclexe /dev/sdb1
{code}
Install the pmount distribution package:
{code}
sudo apt-get install pmount
{code}
Login as root:
{code}
sudo su -
{code}
Cut & paste the following into the command prompt (not a text editor):
{code}
cat > /etc/init.d/oracle-mount <<-EOF
#! /bin/sh
# /etc/init.d/oracle-mount
VOL_UUID=alphanumeric
VOL_LABEL=oraclexe
VOL_SYMLINK=/u01
mount=/usr/bin/pmount
uuid2dev() {
VOL_DEVICE="\`blkid | grep \$VOL_UUID | awk '{print \$1}'\`"
VOL_DEVICE="\`echo \$VOL_DEVICE | tr -d ':'\`"
echo \$VOL_DEVICE
case "\$1" in
start)
echo "Starting script /etc/init.d/oracle-mount"
uuid2dev
\$mount \$VOL_DEVICE \$VOL_LABEL
if [ -d /media/\$VOL_LABEL ]; then
echo "Mount \$VOL_DEVICE success"
ln -sf /media/\$VOL_LABEL \$VOL_SYMLINK
else
echo "Error mouting \$VOL_DEVICE"
fi
stop)
echo "Stopping script /etc/init.d/oracle-mount"
uuid2dev
/bin/umount \$VOL_DEVICE 2>/dev/null
if [ "\`/usr/bin/pmount | /bin/grep \$VOL_DEVICE\`" ]; then
echo "Error unmounting \$VOL_DEVICE"
else
rm -f \$VOL_SYMLINK
fi
echo "Usage: /etc/init.d/oracle-u01 {start|stop}"
exit 1
esac
### BEGIN INIT INFO
# Provides: oracle-mount
# Required-Start: \$remote_fs \$syslog
# Required-Stop: \$remote_fs \$syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Mount hotplug-usb drive and create symlink
### END INIT INFO
EOF
{code}
Install the oracle-mount init script:
{code}
chmod 755 /etc/init.d/oracle-mount
update-rc.d oracle-mount defaults 01 99
{code}
Get the UUID of the volume "oraclexe" and update the VOL_UUID in the init script accordingly:
{code}
uuid=`blkid | grep oraclexe | awk '{print $3}'`
echo $uuid
sed -i "s/^VOL_UUID=.*/VOL_$uuid/g" /etc/init.d/oracle-mount
{code}
The UUID of your device will be a unique number, but should be similar to:
{code}
UUID="3f5e9963-b328-49f3-b3e8-a3561ae34106"
{code}
Logout of root and test the init script:
{code}
exit
sudo /etc/init.d/oracle-mount stop
ls /u01
sudo /etc/init.d/oracle-mount start
ls /u01
{code}
Your output should look like:
{code}
Stopping script /etc/init.d/oracle-mount
/dev/sdb1
ls: cannot access /u01: No such file or directory
Starting script /etc/init.d/oracle-mount
/dev/sdb1
Mount /dev/sdb1 success
lost+found
{code}
h2. 7) ORA-00845: MEMORY_TARGET
Oracle 11gR2 XE under Ubuntu 11.10 will result in "ORA-00845: MEMORY_TARGET not support on this system" either at Oracle database startup or during the initial installation. Ubuntu 11.10 uses a new version of the "systemd" system and session manager and has migrated away from /dev/shm and other common directories in favor of /run.
There are several ways how to address the problem. You can either enable /dev/shm shared memory, or change the default memory management of Oracle 11g from AMM (Automatic Memory Management) to ASMM (Automatic Shared Memory Management) as it was in used the previous 10g version. Since AMM is one of the new features of 11g, the following will show you how to make to make AMM work.
Login as root:
{code}
sudo su -
{code}
Cut & paste the following into the command prompt (not a text editor):
{code}
cat > /etc/init.d/oracle-shm <<-EOF
#! /bin/sh
# /etc/init.d/oracle-shm
case "\$1" in
start)
echo "Starting script /etc/init.d/oracle-shm"
# Run only once at system startup
if [ -e /dev/shm/.oracle-shm ]; then
echo "/dev/shm is already mounted, nothing to do"
else
rm -f /dev/shm
mkdir /dev/shm
mount -B /run/shm /dev/shm
touch /dev/shm/.oracle-shm
fi
stop)
echo "Stopping script /etc/init.d/oracle-shm"
echo "Nothing to do"
echo "Usage: /etc/init.d/oracle-shm {start|stop}"
exit 1
esac
### BEGIN INIT INFO
# Provides: oracle-shm
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Bind /run/shm to /dev/shm at system startup.
# Description: Fix to allow Oracle 11g use AMM.
### END INIT INFO
EOF
{code}
Install the oracle-shm init script:
{code}
chmod 755 /etc/init.d/oracle-shm
update-rc.d oracle-shm defaults 01 99
{code}
Restart the system:
{code}
reboot
{code}
Verify the success:
{code}
sudo cat /etc/mtab | grep shm
{code}
{code}
none /run/shm tmpfs rw,nosuid,nodev 0 0
/run/shm /dev/shm none rw,bind 0 0
{code}
The upper limit of shared memory under Linux is set to 50 % of the installed RAM by default. If your system has less than 2 GB of RAM installed, there is still a chance to run into ORA-00845 error if your shared memory is used by other software.
The verify available shared memory, type the following commands:
{code}
sudo df -h /run/shm
{code}
h2. 8) Installing Oracle 11gR2 Express Edition
The final release version of Oracle 11gR2 Express Edition can be downloaded for free at http://otn.oracle.com/database/express-edition/downloads. The software should automatically downloaded into the "Downloads" folder of your home directory.
Enter the following commands to unpack the installer:
{code}
cd ~/Downloads
unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
rm oracle-xe-11.2.0-1.0.x86_64.rpm.zip
{code}
The Debian Linux based package management of Ubuntu is not compatible with the Red Hat package manager. The Oracle installer needs to be converted using the following commands:
{code}
cd ~/Downloads/Disk1
sudo alien --to-deb --scripts oracle-xe-11.2.0-1.0.x86_64.rpm
(This may take a few minutes)
rm oracle-xe-11.2.0-1.0.x86_64.rpm
{code}
The following needs to be set for compatibility:
{code}
sudo ln -s /usr/bin/awk /bin/awk
sudo mkdir /var/lock/subsys
{code}
Ubuntu uses different tools to manage services and system startup scripts. The "chkconfig" tool required by the Oracle installer is not available in Ubuntu. The following will create a file to simulate the "chkconfig" tool.
Login as root:
{code}
sudo su -
{code}
Copy & paste the following *directly* into the command prompt to create a file:
{code}
cat > /sbin/chkconfig <<-EOF
#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Debian based Linux (by dude)
# Only run once.
echo "Simulating /sbin/chkconfig..."
if [[ ! \`tail -n1 /etc/init.d/oracle-xe | grep INIT\` ]]; then
cat >> /etc/init.d/oracle-xe <<-EOM
### BEGIN INIT INFO
# Provides: OracleXE
# Required-Start: \\\$remote_fs \\\$syslog
# Required-Stop: \\\$remote_fs \\\$syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Oracle 11g Express Edition
### END INIT INFO
EOM
fi
update-rc.d oracle-xe defaults 80 01
EOF
{code}
Exit root:
{code}
exit
{code}
Set execute privileges:
{code}
sudo chmod 755 /sbin/chkconfig
{code}
Install Oracle 11gR2 Express Edition entering the following commands:
{code}
cd ~/Downloads/Disk1
sudo dpkg --install ./oracle-xe_11.2.0-2_amd64.deb
(This may take a couple of minutes)
{code}
Run the configuration script to create (clone) the database and follow the screen. Accept the default answers, including "y" to startup the database automatically, or modify as required.
{code}
sudo /etc/init.d/oracle-xe configure
(This can take a few minutes - the installation completed successfully.)
{code}
To verify success, the procedure should end showing:
{code}
Starting Oracle Net Listener...Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.
{code}
Set a password for the Oracle account:
{code}
sudo passwd oracle
{code}
h2. 9) Post-Installation
In order to use sqlplus and other tools, the Oracle account requires specific environment variables. The following will set these variables automatically at every Oracle login:
Login as the Oracle user:
{code}
su - oracle
{code}
Copy the default account skeleton files and add the Oracle env script to .profile:
{code}
cp /etc/skel/.bash_logout ./
cp /etc/skel/.bashrc ./
cp /etc/skel/.profile ./
echo "" >>./.profile
echo '. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh' >>./.profile
{code}
By default, the Oracle Database XE graphical user interface is only available at the local server, but not remotely. The following will enable remote logins:
Login as the Oracle user:
{code}
su - oracle
{code}
Login as SYSDBA and execute the following:
{code}
sqlplus / as sysdba
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit
{code}
See http://download.oracle.com/docs/cd/E17781_01/admin.112/e18585/toc.htm for more information.
h3. a) Unity desktop configurations
The Oracle XE menu under the previous Gnome Classic desktop shows several useful scripts to backup the database, start and stop the database, etc. Under the Unity based desktop this menu is not available. You can either switch to the Gnome Classic desktop as outlined in chapter 2, or perform the following steps to modify and copy the scripts as outlined below. The start and stop database scripts will also be modified to perform a progress feedback.
Login as user root:
{code}
sudo su -
{code}
Convert desktop files:
{code}
cd /usr/share/applications
sed -i 's/Categories.*/Categories=Database;Office;Development;/g' oraclexe*
sed -i 's/MultipleArgs/X-MultipleArgs/g' oraclexe*
sed -i 's/MimeType.*/MimeType=application\/x-database/g' oraclexe*
sed -i 's/.png//g' oraclexe*
sed -i 's/Terminal=false/Terminal=true/g' oraclexe-startdb.desktop
sed -i 's/Terminal=false/Terminal=true/g' oraclexe-stopdb.desktop
{code}
Exit root:
{code}
exit
{code}
Login as user Oracle:
{code}
su - oracle
{code}
Modify database start and stop scripts:
{code}
cd /u01/app/oracle/product/11.2.0/xe/config/scripts
cp startdb.sh start.sh_orig
cp stopdb.sh stopdb.sh_orig
sed -i 's/>.*//g' startdb.sh
sed -i 's/>.*//g' stopdb.sh
{code}
You will need SYSDBA privileges and set Oracle environment variables in order to use your regular user account.
Login to your regular user account:
{code}
su - dude
{code}
Enter the folowing command:
{code}
sudo usermod -a -G dba dude
{code}
Then update your profile to automatically set the necessary Oracle environment variables:
{code}
echo "" >>./.profile
echo '. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh' >>./.profile
{code}
Update your Desktop folder to contain useful Oracle XE scripts:
{code}
cp /usr/share/applications/oraclexe* ~/Desktop
chmod 750 ~/Desktop/oraclexe*
{code}
To verify success re-login and try "sqlplus":
{code}
su - oracle
sqlplus / as sysdba
{code}
h2. 10) Tips and Troubleshooting
h3. 10. a) Port 1521 appears to be in use by another application
Error: Port 1521 appears to be in use by another application. Specify a different port.This error happens after a previously unsuccessful configuration attempt using /etc/init.d/oracle-xe configure script. The script was able to start the Listener process, but most likely failed to continue to clone the database, e.g. ORA-00845. The following should correct the problem:
Determine the oracle listener process that is already running:
{code}
$ ps -ef | grep oracle
{code}
Your output should be similar to:
{code}
oracle 19789 1 0 19:46 ? 00:00:00 /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr
{code}
Then kill the process, using the appropriate process id, for instance:
{code}
$ sudo kill -9 19789
{code}
h3. 10.b) cannot touch `/var/lock/subsys/listener': No such file or directory
Starting Oracle Net Listener...touch: cannot touch `/var/lock/subsys/listener': No such file or directoryThis error occurs when you run /etc/init.d/oracle-xe configure, but failed the preinstallation step to create the /var//lock/subsys directory as outlined in chapter 8.
h3. 10.c) ORA-00845: MEMORY_TARGET
ORA-00845: MEMORY_TARGET not supported on this system See chapter 7 to enable /dev/shm and verify free space available in /run/shm
h3. 10.d) Apex ADMIN password
According to the Oracle documentation, the password for the INTERNAL and ADMIN Oracle Application Express user accounts is initially the same as the SYS and SYSTEM administrative user accounts. Well, I tried several times without success. To reset the Apex Admin password:
Login as user oracle:
{code}
su - oracle
{code}
Login as SYSDBA and type the following:
{code}
sqlplus / as sysdba
{code}
At the SQL prompt, type the following to be prompted to change the password:
{code}
SQL> @?/apex/apxxepwd.sql
exit
{code}
When done, open your browser and go to http://127.0.0.1:8080/apex
Workspace: Internal
Username: ADMIN
Password: password you set with apxxepwd.sql
I will prompt you to reset the password:
old password: password you set with apxxepwd.sql
new password: final_password
You can also login as the Apex Admin using http://127.0.0.1:8080/apex/apex_admin
h3. 10.e) SYS and SYSTEM password
Use the following commands to reset the SYS and SYSTEM passwords if necessary:
Login as the Oracle user:
{code}
su - oracle
{code}
Login as SYSDBA and type the following at the SQL prompt:
{code}
sqlplus / as sysdba
SQL> alter user sys identified by "password" account unlock;
SQL> alter user system identified by "password" account unlock;
SQL> exit
{code}
h3. 10.f) Uninstall Oracle 11g XE
The following will completely uninstall and remove Oracle 11g XE:
Open a terminal seesion and login as user root:
{code}
sudo su -
{code}
Enter the following:
{code}
/etc/init.d/oracle-xe stop
dpkg --purge oracle-xe
rm -r /u01/app
rm /etc/default/oracle-xe
update-rc.d -f oracle-xe remove
update-rc.d -f oracle-mount remove
update-rc.d -f oracle-shm remove
{code}
h3. 10.g) Reconfigure Oracle 11g XE
Type the following commands in a terminal window:
{code}
sudo /etc/init.d/oracle-xe stop
sudo rm /etc/default/oracle-xe
sudo /etc/init.d/oracle-xe configure
{code}
h3. 10.h) Gnome Classic desktop
Ubuntu 11 moved from the Gnome Classic desktop to Unity and removed the "Ubuntu Classic" login option. Unity was designed to make more efficient use of space given a limited screen size and touch screens. If you prefer to use the Gnome Classic desktop, enter the following into a terminal window:
{code}
sudo apt-get install gnome-panel
{code}
To log into the Gnome Classic desktop, select the "Gearwheel" at the login screen and select "Gnome Classic".
h3. 10.i) Unix vi cursor keys
The instructions in this tutorial do not require the use of any text editor. However, if you would like use the backspace and cursor keys in the "vi-editor", the following needs to be installed:
{code}
sudo apt-get install vim
{code}
h3. 10.j) Backup Database
In order to perform an online database backup using the supplied "Backup Database" script, the database needs to run in Archive-Log mode. This can be setup using the following commands:
Login as the Oracle user:
{code}
su - oracle
{code}
Login as SYSDBA and type the following:
{code}
sqlplus / as sysdba
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
SQL> exit
{code}
h2. 11) History
Version: A, 24-Oct-2011
- first release
Version: B, 25-Oct-2011
- reduced instructions.
- corrected errors in 6a and 8.
- new strategy addressing ORA-00845 error.
- rework of chapter 10.
Version: C, 30-Nov-2011
- corrected typo in 6a
- new procedures in 9a.
- added progress feedback to database scripts.
Version D, 14-Jan-2012
- corrected presentation errors.
- reorganized instructions.
h3. 12) References
http://download.oracle.com/docs/cd/E17781_01/install.112/e18802/toc.htm
http://askubuntu.com/questions/57297/why-has-var-run-been-migrated-to-run
http://lwn.net/Articles/436012/
https://forums.oracle.com/forums/thread.jspa?threadID=2300750&tstart=0
Kind regards and best of luck!
Dude.Excellent Blog. Thank You
Small clarification on Step **6) Oracle Home Directory, ...a) Resize the Root Partition**
Ubuntu 11.10 has Gparted available as a Ubuntu software download, DONT use that while trying the above step, instead download the ISO file from http://sourceforge.net/projects/gparted/files/gparted-live-stable/ gparted-live-0.12.0-5.iso (124.6 MB)
Burn that ISO file on a Blank DVD, reboot the Ubuntu , during startup select Boot from DVD Option if not already selected. this will take to Boot Menu Options of Gparted Live then select the first menu option, and this allows to do further action such as Re-sizing .
and once you have chosen and executed step a) . do NOT run step b) also that is "Setup External Storage"
I hope this minor clarification can avoid some confusion
Regards
Madhusudhan Rao
Edited by: MadhusudhanRao on Mar 24, 2012 11:30 PM -
Install Oracle 11gR2 Express Edition on Ubuntu Linux 11.04 (64-bit) Howto
h2. Install Oracle 11gR2 Express Edition on Ubuntu Linux 11.04 (64-bit) Howto
Version: B
Author: Dude, 24. May 2011
The following are step by step instructions how to install Oracle 11gR2 Express Edition (Beta) under Linux Ubuntu 11.04, 64-bit.
Access to the Internet is required.
The instructions cover the following additional topics:
- Converting Red Hat based Oracle XE installer to Ubuntu.
- Work-around for missing /sbin/chkconfig tool.
- Install Oracle XE into a different directory or disk volume.
- Relocate and configure the Oracle user and default login directory.
- Uninstall, reconfigure and perform first database backup.
- Notes and web links.
- Troubleshooting
h3. A) System Setup and Prerequisites
h4. A.1. System Access
You will need terminal command line, root and system console access to perform the setup tasks.
To open a Terminal at the system console:
Menu Applications > Accessories > TerminalThe following commands will enable remote ssh login with root access:
sudo apt-get install openssh-server
sudo passwd root
Verify:
ssh root@xe_server_host_nameh4. A.2. Software Prerequisites
The following is required in order to install Oracle 11gR2 XE:
sudo apt-get install alien libaio1 unixodbcThe following is not required, but it will fix backspace and arrow keys in case you prefer using the vi-editor:
sudo apt-get install vimh4. A.3. System Swap space
Minimum swap space required is 2 GB. You can increase swap space if necessary using a swap file:
To analyze current swap space and memory configuration:
sudo cat /proc/meminfo
To install a 1 GB swapfile named swapfile in /, for example:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
(this may take a while)
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.orig
sudo echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
Verify:
sudo swapon -a
sudo swapon -sh4. A.4. Kernel Parameters
Oracle 11g XE requires the following additional kernel parameters:
sudo nano /etc/sysctl.d/60-oracle.conf
(Enter the following)
# Oracle 11g XE kernel parameters
fs.file-max=6815744
net.ipv4.ip_local_port_range=9000 65000
kernel.sem=250 32000 100 128
kernel.shmmax=536870912
(Save the file)
Note: kernel.shmmax = max possible value, e.g. size of physical RAM.
Verify: sudo cat /etc/sysctl.d/60-oracle.conf
Load new kernel parameters:
sudo service procps start
Verify:
sudo sysctl -q fs.file-max
-> fs.file-max = 6815744h4. A.5. Oracle Installation Directory
The current Oracle Installation Guide uses the same directory like in previous versions: /usr/lib/oracle/xe/app/oracle/product/11.2.0/server. However, the current Beta installation uses Oracle Flexible Architecture (OFA) and installs into /u01/app/oracle/product/11.2.0/xe. Due to size limitations of Oracle XE it may not be necessary to store the installation to a specific directory or separate volume, but it is possible:
Install Oracle XE to separate disk volume:
From the system console menu: System > Administration > Disk Utility
Select "ext3" filesystem for Oracle compatibility and specify a Volume label, e.g. Oracle.
Notice the device name e.g. /dev/sdb
Get the drive UUID:
sudo blkid
e.g. /dev/sdb: UUID="d19a2d8f-da43-4802-8bdb-0703c855e23a"
Modify /etc/fstab to automatically mount the volume at system startup:
sudo cp /etc/fstab /etc/fstab.original
sudo nano /etc/fstab
(Add the following, using determined UUID, for exmple)
UUID=d19a2d8f-da43-4802-8bdb-0703c855e23a /u01 ext3 defaults,errors=remount-ro 0 1
(Save the file)
Create the mount-point, mount the new volume and set ownership and privileges:
sudo mkdir /u01
sudo mount -a
sudo chown root:root /u01
sudo chmod 755 /u01
Verify:
df -h
or restart the systemYou can also install Oracle XE into a specific directory:
Create a symbolic link to store the installation into an existing directory, for instance:
sudo mkdir /home/oracle-xe
sudo ln -s /home/oracle-xe /u01h3. C) Oracle 11g XE Download and Installation
h4. C.1. Download and convert the Installer from Red Hat to Ubuntu
Please see section E.3. to download the Oracle 11gR2 XE installer.
Select the version listed for Linux x64.
sudo unzip linux.x64_11gR2_OracleXE.zip
sudo alien --to-deb --scripts oracle-xe-11.2.0-0.5.x86_64.rpm
(This may take a while)h4. C.2. Create a special chkconfig script
The Red Hat based installer of Oracle XE 11gR2 beta relies on +/sbin/chkconfig+, which is not used in Ubuntu. The chkconfig package available for the current version of Ubuntu produces errors and my not be safe to use. Below is a simple trick to get around the problem and install Oracle XE successfully:
Create /sbin/chconfig:
sudo nano /sbin/chkconfig
(Cut and paste the following)
#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Debian by Dude
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
echo >> $file
echo '### BEGIN INIT INFO' >> $file
echo '# Provides: OracleXE' >> $file
echo '# Required-Start: $remote_fs $syslog' >> $file
echo '# Required-Stop: $remote_fs $syslog' >> $file
echo '# Default-Start: 2 3 4 5' >> $file
echo '# Default-Stop: 0 1 6' >> $file
echo '# Short-Description: Oracle 11g Express Edition' >> $file
echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01
(Save the file)
Set appropriate execute privileges:
chmod 755 /sbin/chkconfig
Note: You should remove the /sbin/chkconfig file after successful installation of Oracle XE.
h4. C.3. Install and configure Oracle XE
sudo dpkg --install ./oracle-xe_11.2.0-1.5_amd64.deb
/etc/init.d/oracle-xe configure
(This will take a while)
Remove the /sbin/chkconfig script, which is no longer needed.
sudo rm /sbin/chkconfigh4. C.4. Relocate and Configure the Oracle user login
The Oracle XE installer specifies /u01/app/oracle as the login directory for the Oracle user. Although not really necessary, the following will relocate the Oracle user $HOME to a standard location and create standard /etc/skel login files:
Exit all Oracle user sessions:
sudo /etc/init.d/oracle-xe stop
sudo kill -9 `ps -ef | grep oracle | grep -v grep | awk '{print $2}'`
sudo userdel oracle
sudo useradd -s /bin/bash -G dba -g dba -m oracle
sudo passwd oracle
Verify:
sudo id oracle
-> uid=1001(oracle) gid=1001(dba) groups=1001(dba)h4. C.5. Setup Oracle environment variables
In order to use sqlplus and other tools, the Oracle account requires certain environment variables. The following will set these variables automatically at every interactive Oracle login:
sudo echo '. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh' >> /home/oracle/.bashrch4. C.6. Oracle sudo root access
It is not essential to allow the Oracle user to use sudo, but it is convenient:
usermod -G admin oracle
Verify:
id oracle
-> uid=1001(oracle) gid=1001(dba) groups=1001(dba),120(admin)
sudo su -
-> Enter Oracle account passwordh4. C.7. Oracle 11g XE Post-installation
After you install Oracle Database XE, its graphical user interface is only available from the local server, but not remotely.
The following will correct the problem if necessary:
Login as user Oracle or use:
su - oracle
sqlplus / as sysdba
At the SQL prompt, enter the following command:
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exith3. D) Unintstall, Reconfigure and Troubleshooting
h4. D.1. Uninstall Oracle 11g XE
The following will completely uninstall and remove Oracle 11g XE:
Login as user root:
sudo su -
/etc/init.d/oracle-xe stop
dpkg --purge oracle-xe
rm -r /u01/app
rm /etc/default/oracle-xe
update-rc.d -f oracle-xe removeh4. D.2. Reconfigure Oracle 11g XE
Type the following in a terminal window:
/etc/init.d/oracle-xe stop
sudo rm /etc/default/oracle-xe
/etc/init.d/oracle-xe configureh4. D.3. Enable Archivelog mode and perform a database backup
Login as user Oracle:
su - oracle
sqlplus / as sysdba
At the SQL prompt, enter the following commands:
shutdown immediate
startup mount
alter database archivelog;
alter database open;
exit
Login to system console of the Oracle user account:
Select Applications > Oracle Database 11g Express Edition > Backup Databaseh3. E) Notes
h4. E.1. Oracle 11g XE limitiations overview
- It will consume, at most, processing resources equivalent to one CPU.
- Only one installation of Oracle Database XE can be performed on a single computer.
- The maximum amount of user data in an Oracle Database XE database cannot exceed 11 GB.
- The maximum amount of RAM that Oracle XE uses cannot exceed 1 GB, even if more is available.
- HTTPS is not supported natively with the HTTP listener built into Oracle Database XE.
h4. E.2. Documentation and Links
Official documentation for Oracle 11gR2 XE can be found at:
http://www.oracle.com/pls/xe112/homepage
h4. E.3. Oracle 11g XE downloads
The Installer is available from the Oracle Technology Network at:
http://www.oracle.com/technology/products/database/xe
http://www.oracle.com/technetwork/database/express-edition/downloads/index.html
h4. E.4 APEX links and archives
The APEX archives can be found at:
http://www.oracle.com/technetwork/developer-tools/apex/application-express/all-archives-099381.html
The APEX download site is:
http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html
h3. F) Troubleshooting
... in progress
Regards and best of luck!
Edited by: Dude on May 25, Version B: various corrections. chkconfig package (A.2.) not required.even though I am admin user.Admin user is a MS Windows term, that does not apply to Linux or Unix in the same fashion.
The configuration script tells you "You must be root user to run the configure script. Login as root user and
then run the configure script."
This is most likely correct because your account is not root and does not have UID 0. What you can do is to login as root e.g. sudo su -, as the message suggest, or use "sudo /etc/init.d/oracle-xe configure", provided your account is defined in the /etc/sudoers file to perform root/admin actions.
Btw, do not modify /etc/passwd and /etc/group to give you admin privileges or try to create a another root account under a different name. That's not the way it works and usually leads to nasty problems. -
File download/upload howto
Regarding the Fil upload/download at
http://www.oracle.com/technology/products/database/htmldb/howtos/howto_file_upload.html
How can I add a 'Delete' button next to each file in the Download report region to delete that file from the wwv_flow_files table?
ThanksYou need to pass the ID of the file you want to
to delete. Take a look at
http://htmldb.oracle.com/pls/otn/f?p=11602:1 .
How can I pass the id of the file? I thought that would be in the session state :DEL (which is what I aliased the id column to in the report region), thats why I did 'delete from wwv_flow_files where id=:DEL'
Few questions, if you dont mind.
1. How do you get your After header process code to show up on the page?
2. Where do you set your :P1_DEL?
3. How do you get your 'Delete File' text box to be displayed in that fashion? My after header process's success messges just gets displayed with a green checkmark next to it. How can I change the formatting like you did?
4. Where did you get the 'Upload' button gif? Does that come with HTMLDB? Or did you pick it up from the Internet and upload it?
5. Regarding the upload button, is that displayed in a 'region position' or 'among the region's items'? I have never seen it in that position!
Thanks for your continued help. I appreciate it. -
HOWTO: Use BC4J With or Without DB Triggers
This HowTo describes how to use BC4J, database sequences and triggers
and what are the ramifications.
INTRODUCTION
BC4J has the ability to work with database sequences in order to obtain a
unique value when inserting records. BC4J also has the ability to
work either with a 'before insert' trigger which automatically creates
a new unique value for the primary key or without a trigger. When not using
a database trigger, BC4J also has the ability to obtain the sequence value
and set the primary key value.
Before discussing the ramifications of using one approach or the other, let's
show examples of how to use both approaches:
BC4J & sequences WITH a database trigger
and
BC4J & sequences WITHOUT a database trigger
HOWTO DEMONSTRATION STEPS
To illustrate both scenarios a simple database setup script is provided which
creates two tables:
CUSTOMER_NT which DOES NOT have a before insert trigger and
CUSTOMER_WT which DOES have a trigger.
Database Install Script:
<code>
drop trigger customer_insert_trigger;
drop table customer_wt;
drop table customer_nt;
drop sequence customer_wt_seq;
drop sequence customer_nt_seq;
create sequence customer_wt_seq start with 1;
create sequence customer_nt_seq start with 101;
create table customer_wt(
id number,
name varchar2(30),
constraint
customer_wt_pk
primary key (id)
create table customer_nt(
id number,
name varchar2(30),
constraint
customer_nt_pk
primary key (id)
prompt Inserting data...
insert into customer_wt (id, name)
values (customer_wt_seq.nextval, 'Mickey');
insert into customer_wt (id, name)
values (customer_wt_seq.nextval, 'Goofy');
insert into customer_nt (id, name)
values (customer_nt_seq.nextval, 'Daffy');
insert into customer_nt (id, name)
values (customer_nt_seq.nextval, 'Porky');
commit
prompt Creating trigger
create trigger customer_insert_trigger
before insert on customer_wt for each row
begin
select customer_wt_seq.nextval into :new.id from dual ;
end;
</code>
The next step is to create the DEFAULT Entity Objects and View Objects using
the Business Components Wizard.
USING BC4J WITH A DATABASE TRIGGER
Let's modify the entity object CustomerWt so it can use the database trigger.
Edit the entity object CustomerWt by right-clicking in the navigator.
Click on the 'Attribute Settings' tab and edit the ID attribute.
- Uncheck 'Mandatory'checkbox. This allows you to insert without a value for the primary key
- Check 'Refresh after Insert'. This obtains the value from the database generated by the trigger.
- Check 'Updateable While New'. Id is only updateable when inserting.
Click finish to complete the wizard. Save all and recompile the project.
Now let's test our work.
In the navigator right-click the application module and select 'Test..'. This will launch
BC4J's built in tester. Connect to the application.
In the tester double-click the CustomerWtView view object to run a test edit form.
After the edit form renders, navigate through the existing records using the navigate
buttons on the edit form. Now let's insert a record to execute the trigger.
click on the '+' button to insert a record. Enter a value in the 'Name' field and commit the change.
Observe that a new value has automatically been inserted into the Id field.
That's it! You have successfully used BC4J and a database trigger.
Now let's try it without a trigger..
USING BC4J WITHOUT A DATABASE TRIGGER
Now edit the entity object CustomerNT so it doesn't need a database trigger.
Similar to before, edit the entity object CustomerNt by right-clicking in the navigator.
Click on the 'Attribute Settings' tab and edit the ID attribute.
- Uncheck 'Mandatory'checkbox.
- Check 'Updateable While New'.
An additional step is also required. The Create method will have to be modified to extract
the value of the sequence.
In the Edit EntityObject Wizard click the Java tab and select Create method and click Finish.
The create method is generated in your Java fil e. In the Workspace view of the Navigator,
expand the CustomerNt entity object in the navigator. Double-click
CustomerNtImpl.java to open it in the Source Editor. In the Structure pane, double-click
create(AttributeList). Modify the Create method so it looks like this:
<code>
public void create(AttributeList attributeList) {
super.create(attributeList);
SequenceImpl s = new SequenceImpl("customer_nt_seq", getDBTransaction());
Integer next = (Integer)s.getData();
setId(new Number(next.intValue())); }
</code>
Save and compile the project.
Now test the ViewObject CustomerNtView using the tester as before.
In the edit form of CustomerNTView click on the '+' to insert a record. Observe that
just as before a new value has automatically been inserted in the ID field!
TO USE A DB TRIGGER OR NOT TO USE A DB TRIGGER.
Using a Database trigger sometimes preferable if you have non BC4J applications
also sharing the database. In this case it is still safest to just let the database
update it's own primary keys.
If you don't have any other non-BC4J applications sharing the database, then not using
a database trigger is perfectly acceptable and can have slightly better performance.
The important thing to remember is that the option is yours to use either approach!
nullThank you for the reply Jonathon. I am using a ViewObject which
consist of several tables. I haven't tried the DB trigger
approach but just using the BC4 approach in overriding the
create method.
Here is the parent class create as a part of the
FasNameImpl.java file which does the job correctly.
public void create(AttributeList attributeList) {
super.create(attributeList);
SequenceImpl l_seq = new SequenceImpl
("SEQ_CUSTOMER_ID",getDBTransaction());
Integer l_next = (Integer)l_seq.getData();
setCustomerId(new Number(l_next.intValue()));
This is when I triedpassing the value to the child table. But I
can't figure it out. I think the link is working fine if I had a
ViewLink deployed but it doesn't look like it's doing the job
for ViewObject.
I am trying to call the childclass.method
(FasCustomer.setCustomerId(l_next);
But I am getting error.
Thanks a lot for your suggestions,
Kamran
703 696 1121 -
Howto drag and drop emails as reminders in ical
Howto drag and drop emails as reminders (or tasks) in ical
Just drag the message from Mail onto Calendar and drop it.
I'm guessing you tried this and it doesn't work?
What happens when you try? -
HOWTO: Hide the delete button in a NavigatorBar
HOWTO: Hide the delete button in a NavigatorBar (JSP)
Goal: Hide the delete button in a NavigatorBar or JSNavigatorBar Data Web Bean. This example works for either bean.
Solution: Edit the .jsp file containing your NavigatorBar bean. For a generated BC4J JSP application, the file is YourView_Top.jsp.
Find the code that instantiates the NavigatorBar. It will look something like:
<jsp:useBean class="oracle.jbo.html.databeans.NavigatorBar" id="tb" scope="request">
<%
tb.initialize(pageContext, "MyProject1_bizcomp_BizcompModule.MyView");At this point, add the following line of code to hide the delete button:
tb.getButton(tb.NAVIGATE_DELETE).setButtonVisible(false);You can find the variable names for the other navigator buttons in the javadoc for oracle.jbo.html.databeans.BaseNavigatorBar. In the online help, this is under Reference -> Business Components Reference.
nullGeorges,
This has come up before, and after some experimentation, there's not a straightforward way to do it.
There are two possible solutions that I can think of:
1. Write your own custom bean and/or extend the beans provided to modify them to your needs.
2. Wait for the 3.2 release at the end of the month. This release provides custom data tags with much finer grained control over specific items such as the buttons.
I think 2 is preferable, if you have the time to wait. -
HOWTO: Control Printer Attributes for a Report at Run Time Reports 6i
HOWTO: Control Printer Attributes for a Report at Run Time
Like page width , height etc
my problem is i had installed a printer and it is set for
printing different reports ( like invoice slips , legal size ,
A3 etc ) each time i have to manually set the page settup from
printer folder .instead if there is an option to set the printer
attributes from Reports 6i it is great
rajeshAll the Printer Setup(Page Height and Page Width) must be set in
the Reprot Program. These can be set at the Layout-Main Section
in the Object Navigator.
hth -
Looking for a howto for an applescript to batch convert PPTS to Keynote...
Looking for a howto for an applescript to batch convert PPTS to Keynote...
Hi to group!
(cross posted this a couple of weeks ago to Keynote forum, no responses) Perhaps the query really belongs here...)
(I) Have a whole bunch of PPTs to convert to Keynote, now and more as time goes on.
Looked into applescript to try to automate this a bit (could open PPT file but did not see any way to 'Save' file from a script).
Also looked into bash scripting/automator too -- way too many options to choose from. Help!
Anybody done anything similar to this already?
TIA for pointers. //GHA word of caution.
I have not tried the workflow before.
I am not an applescript expert.
These steps were quickly composed using my basic knowledge in Applescript
What I was planning was to create a script droplet that when a ppt file is dropped upon it, it extracts the name of the file and sets it to a variable to name the keynote file later. You might have to modify it a bit to batch process multiple files.
Try going through batch processing scripts made for quark or Adobe photoshop ( Not sure if these exist on internet) to see how they have implemented the steps in applescript.
To GUI Script Keynote, do these steps...
All the code has to go in here
<pre title="this text can be pasted into the Script Editor" style="font-family: Monaco, 'Courier New', Courier, monospace; font-size: 10px; padding: 5px; width: 720px; color: #000000; background-color: #E0E0E0; overflow: auto">activate application "Keynote.app"
tell application "System Events"
tell process "Keynote"
-- insert GUI Scripting statements here
end tell
end tell
</pre>
<pre title="this text can be pasted into the Script Editor" style="font-family: Monaco, 'Courier New', Courier, monospace; font-size: 10px; padding: 5px; width: 720px; color: #000000; background-color: #E0E0E0; overflow: auto">click menu item "Export…" of menu 1 of menu bar item "File" of menu bar 1</pre>
This will click the next.. button provided the default export type is set to PPT
<pre title="this text can be pasted into the Script Editor" style="font-family: Monaco, 'Courier New', Courier, monospace; font-size: 10px; padding: 5px; width: 720px; color: #000000; background-color: #E0E0E0; overflow: auto">click button 2 of sheet 1 of window 2
</pre>
This will click the Export button on the next window
click button 1 of sheet 1 of window 2
This piece of code can be used to set the name of the ppt file using the extracted name in the first step
<pre title="this text can be pasted into the Script Editor" style="font-family: Monaco, 'Courier New', Courier, monospace; font-size: 10px; padding: 5px; width: 720px; color: #000000; background-color: #E0E0E0; overflow: auto">set value of text field 1 of sheet 1 of window 2 to "<string>"
</pre>
May be there is a better way out there.
Thanks for red_menace for his Script formatter script
Message was edited by: dj9027 -
Problem with HowTo guide - Use the BI Java SDK in a Web Dynpro Application
Hello,
I am following the HowTo guide - Use the BI Java SDK in a Web Dynpro Application
at <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e49be590-0201-0010-0c83-fc20e5da124f">this link</a>.
I have configured the connector on the WAS as needed.
The problem is that when I run the application I receive an Unauthorized error on the connector URL.
If I open this URL on a browser I receive a pop-up for UID and PWD and when I enter the same UID and PWD I used to configure the connector I am able to login and see the WSDL.
Any ideas?I've never tried using BI in WebDynpro !!!
But i foond one posting on the connection problem https://forums.sdn.sap.com/click.jspa?searchID=955524&messageID=2133396
Regards,Anilkumar -
HOWTO: Using a BC4J Application Module in an Stateless EJB Session Bean
HOWTO: Using a BC4J Application Module in an Stateless EJB Session Bean
by Steve Muench
Overview
BC4J provides automatic facilities for deploying any application module as a stateful EJB session bean. If you want to leverage the features of your BC4J application module from a stateless EJB session bean, it's not automatic but it is straightforward to implement. This howto article explains the details.
For our example, we will create a stateless EJB session bean that uses a container-managed transaction. To keep things simple, let's assume the session bean has a single public method on its remote interface named createDepartment() with the following signature:
public void createDepartment(int id, String name, String loc) throws AppException
AppException is an example of an application-specific exception that our method will throw if any problems arise during its execution.The goal of this article is to illustrate how to use the BC4J application module named com.example.hr.HRApp as part of the implementation of this createDepartment method on our stateless enterprise bean. Let's assume that the HRApp application module has a view object member named Departments, based on the com.example.hr.DeptView view object, based on the familiar DEPT table and related to the com.example.hr.Dept entity object so our view can be updateable.
Creating the Stateless Session Bean
We can start by using the JDeveloper Enterprise Bean wizard to create a new stateless session bean called StatelessSampleEJB implemented by:[list][*]com.example.StatelessSampleEJBBean (Bean class)[*]com.example.StatelessSampleEJBHome (Home interface)[*]com.example.StatelessSampleEJB (Remote interface)[list]
We then use the EJB Class Editor to add the createDepartment method to the remote interface of StatelessSampleEJB with the signature above. We edit the remote interface to make sure that it also reflects that the createDepartment method thows the AppException like this:
package com.example;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface StatelessSampleEJB extends EJBObject {
void createDepartment(int id, String name, String loc)
throws RemoteException,AppException;
}Before we start adding BC4J into the picture for our implementation, our StatelessSampleEJBBean class looks like this:
package com.example;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class StatelessSampleEJBBean implements SessionBean {
public void ejbCreate(){}
public void ejbActivate(){}
public void ejbPassivate(){}
public void ejbRemove(){}
public void setSessionContext(SessionContext ctx){
public void createDepartment(int id, String name, String loc)
throws AppException {
// TODO: Implement method here
}We can double-click on the ejb-jar.xml file in our project to see the XML deployment descriptor for the bean we just created:
<ejb-jar>
<enterprise-beans>
<session>
<description>Session Bean ( Stateless )</description>
<display-name>StatelessSampleEJB</display-name>
<ejb-name>StatelessSampleEJB</ejb-name>
<home>com.example.StatelessSampleEJBHome</home>
<remote>com.example.StatelessSampleEJB</remote>
<ejb-class>com.example.StatelessSampleEJBBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>We need to add the extra <assembly-descriptor> section in this file to indicate that the createDepartment method will require a transaction. After this edit, the ejb-jar.xml file looks like this:
<ejb-jar>
<enterprise-beans>
<session>
<description>Session Bean ( Stateless )</description>
<display-name>StatelessSampleEJB</display-name>
<ejb-name>StatelessSampleEJB</ejb-name>
<home>com.example.StatelessSampleEJBHome</home>
<remote>com.example.StatelessSampleEJB</remote>
<ejb-class>com.example.StatelessSampleEJBBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>StatelessSampleEJB</ejb-name>
<method-name>createDepartment</method-name>
<method-params>
<method-param>int</method-param>
<method-param>java.lang.String</method-param>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Aggregating a BC4J Application Module
With the EJB aspects of our bean setup, we can proceed to implementing the BC4J application module aggregation.
The first thing we do is add private variables to hold the EJB SessionContext and the instance of the aggregated BC4J ApplicationModule, like this:
// Place to hold onto the aggregated appmodule instance
transient private ApplicationModule _am = null;
// Remember the SessionContext that the EJB container provides us
private SessionContext _ctx = null;and we modify the default, empty implementation of the setSessionContext() method to remember the session context like this:
public void setSessionContext(SessionContext ctx){ _ctx = ctx; }We add additional constants that hold the names of the J2EE datasource that we want BC4J to use, as well as the fully-qualified name of the BC4J application module that we'll be aggregating:
// JNDI resource name for the J2EE datasource to use
private static final String DATASOURCE = "jdbc/OracleCoreDS";
// Fully-qualified BC4J application module name to aggregate
private static final String APPMODNAME = "com.example.hr.HRApp";We expand the now-empty ejbCreate() and ejbRemove() methods to create and destory the aggregated instance of the BC4J application module that we'll use for the lifetime of the stateless session bean. When we're done, ejbCreate() it looks like this:
public void ejbCreate() throws CreateException {
try {
// Setup a hashtable of environment parameters for JNDI initial context
Hashtable env = new Hashtable();
env.put(JboContext.INITIAL_CONTEXT_FACTORY,JboContext.JBO_CONTEXT_FACTORY);
// NOTE: we want to use the BC4J app module in local mode as a simple Java class!
env.put(JboContext.DEPLOY_PLATFORM, JboContext.PLATFORM_LOCAL);
env.put(PropertyConstants.INTERNAL_CONNECTION_PARAMS,DATASOURCE);
// Create an initial context, using this hashtable of environment params
InitialContext ic = new InitialContext(env);
// Lookup a home interface for the application module
ApplicationModuleHome home = (ApplicationModuleHome)ic.lookup(APPMODNAME);
// Using the home, create the instance of the appmodule we'll use
_am = home.create();
// Register the BC4J factory to handle EJB container-managed transactions
registerContainerManagedTransactionHandlerFactory();
catch(Exception ex) {
ex.printStackTrace();
throw new CreateException(ex.getMessage());
}and ejbRemove() looks like this:
public void ejbRemove() {
try {
// Cleanup any appmodule resources before getting shutdown
_am.remove();
catch(JboException ex) { /* Ignore */ }
}The helper method named reigsterContainerManagedTransactionHandlerFactory() looks like this:
private void registerContainerManagedTransactionHandlerFactory() {
SessionImpl session = (SessionImpl)_am.getSession();
session.setTransactionHandlerFactory(
new TransactionHandlerFactory() {
public TransactionHandler createTransactionHandler() {
return new ContainerManagedTxnHandlerImpl();
public JTATransactionHandler createJTATransactionHandler() {
return new ContainerManagedTxnHandlerImpl();
}The last detail is to use the BC4J appmodule to implement the createDepartment() method. It ends up looking like this:
public void createDepartment(int id, String name, String loc)
throws AppException {
try {
// Connect the AM to the datasource we want to use for the duration
// of this single method call.
_am.getTransaction().connectToDataSource(null,DATASOURCE,false);
// Use the "Departments" view object member of this AM
ViewObject departments = _am.findViewObject("Departments");
// Create a new row in this view object.
Row newDept = departments.createRow();
// Populate the attributes from the parameter arguments.
newDept.setAttribute("Deptno", new Number(id));
newDept.setAttribute("Dname", name);
newDept.setAttribute("Loc", loc);
// Add the new row to the view object's default rowset
departments.insertRow(newDept);
// Post all changes in the AM, but we don't commit them. The EJB
// container managed transaction handles the commit.
_am.getTransaction().postChanges();
catch(JboException ex) {
// To be good EJB Container-Managed Transaction "citizens" we have
// to mark the transaction as needing a rollback if there are problems
_ctx.setRollbackOnly();
throw new AppException("Error creating dept "+ id +"\n"+ex.getMessage());
finally {
try {
// Disconnect the AM from the datasource we're using
_am.getTransaction().disconnect();
catch(Exception ex) { /* Ignore */ }
Building a Test Client
With the EJB-Tier work done, we can build a sample client program to test this new stateless EJB Session Bean by selecting the bean in the Oracle9i JDeveloper IDE and choosing "Create Sample Java Client" from the right-mouse menu.
When the "Sample EJB Client Details" dialog appears, we take the defaults of connecting to embedded OC4J container. Clicking the (OK) button generates the following test class:
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import com.example.StatelessSampleEJB;
import com.example.StatelessSampleEJBHome;
public class SampleStatelessSampleEJBClient {
public static void main(String [] args) {
SampleStatelessSampleEJBClient sampleStatelessSampleEJBClient =
new SampleStatelessSampleEJBClient();
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.evermind.server.rmi.RMIInitialContextFactory");
env.put(Context.SECURITY_PRINCIPAL, "admin");
env.put(Context.SECURITY_CREDENTIALS, "welcome");
env.put(Context.PROVIDER_URL,
"ormi://localhost:23891/current-workspace-app");
Context ctx = new InitialContext(env);
StatelessSampleEJBHome statelessSampleEJBHome =
(StatelessSampleEJBHome)ctx.lookup("StatelessSampleEJB");
StatelessSampleEJB statelessSampleEJB;
// Use one of the create() methods below to create a new instance
// statelessSampleEJB = statelessSampleEJBHome.create();
// Call any of the Remote methods below to access the EJB
// statelessSampleEJB.createDepartment( int id, java.lang.String name, java.lang.String loc );
catch(Throwable ex) {
ex.printStackTrace();
}We uncomment the call to the create() method and add a few calls to the createDepartment() method so that the body of the test program now looks like this:
// Use one of the create() methods below to create a new instance
statelessSampleEJB = statelessSampleEJBHome.create();
// Call any of the Remote methods below to access the EJB
statelessSampleEJB.createDepartment( 13, "Test1","Loc1");
System.out.println("Created department 13");
statelessSampleEJB.createDepartment( 14, "Test2","Loc2");
System.out.println("Created department 14");
try {
// Try setting a department id that is too large!
statelessSampleEJB.createDepartment( 23456, "Test3","Loc3");
catch (AppException ax) {
System.err.println("AppException: "+ax.getMessage());
}Before we can successfully run our SampleStatelessSampleEJBClient we need to first run the EJB bean that the client will try to connect to. Since Oracle9i JDeveloper supports local running and debugging of the EJB-Tier without doing through a full J2EE deployment step, to accomplish this prerequisite step we just need to right-mouse on the StatelessSampleEJB node in the System Navigator and select "Run". This starts up the embedded OC4J instance and runs the EJB right out of the current out path.Finally, we can run the SampleStatelessSampleEJBClient, and see the output of the test program in the JDeveloper log window:
Created department 13
Created department 14
AppException: Error creating dept 23456
JBO-27010: Attribute set with value 23456 for Deptno in Dept has invalid precision/scale
Troubleshooting
One error that might arise while running the example is that the database connection information in your data-sources.xml for the jdbc/OracleCoreDS datasource does not correspond to the database you are trying to test against. If this happens, then double-check the file .\jdev\system\oc4j-config\data-sources.xml under the JDeveloper installation home directory to make sure that the url value provided is what you expect. For example, to work against a local Oracle database running on your current machine, listening on port 1521, with SID of ORCL, you would edit this file to have an entry like this for jdbc/OracleCoreDS :
<data-source
class="com.evermind.sql.DriverManagerDataSource"
name="OracleDS"
location="jdbc/OracleCoreDS"
xa-location="jdbc/xa/OracleXADS"
ejb-location="jdbc/OracleDS"
connection-driver="oracle.jdbc.driver.OracleDriver"
username="scott"
password="tiger"
url="jdbc:oracle:thin:@localhost:1521:ORCL"
inactivity-timeout="30"
/>This is the data-sources.xml file that gets used by the embedded OC4J instance running in JDeveloper.
Conclusion
Hopefully this article has illustrated that it is straightforward to utilize the full power of BC4J in local mode as part of your EJB Stateless Session Beans using container-managed transaction. This example illustrated a single createDepartment method in the enterprise bean, but by replicating the application module interaction code that we've illustrated in createDepartment, any number of methods in your stateless session bean can use the aggregated application module instance created in the ejbCreate() method.
Code Listing
The full code listing for the SampleStatelessEJB bean implementation class looks like this:
* StatelessSampleEJB
* Illustrates how to use an aggregated BC4J application module
* in local mode as part of the implementation of a stateless
* EJB session bean using container-managed transaction.
* HISTORY
* smuench/dmutreja 14-FEB-2002 Created
package com.example;
import oracle.jbo.*;
import oracle.jbo.server.*;
import javax.ejb.*;
import oracle.jbo.domain.Number;
import oracle.jbo.common.PropertyConstants;
import java.util.Hashtable;
import javax.naming.InitialContext;
import oracle.jbo.server.ejb.ContainerManagedTxnHandlerImpl;
public class StatelessSampleEJBBean implements SessionBean {
// JNDI resource name for the J2EE datasource to use
private static final String DATASOURCE = "jdbc/OracleCoreDS";
// Fully-qualified BC4J application module name to aggregate
private static final String APPMODNAME = "com.example.hr.HRApp";
// Place to hold onto the aggregated appmodule instance
transient private ApplicationModule _am = null;
// Remember the SessionContext that the EJB container provides us
private SessionContext _ctx = null;
public void ejbCreate() throws CreateException {
try {
// Setup a hashtable of environment parameters for JNDI initial context
Hashtable env = new Hashtable();
env.put(JboContext.INITIAL_CONTEXT_FACTORY,JboContext.JBO_CONTEXT_FACTORY);
env.put(JboContext.DEPLOY_PLATFORM, JboContext.PLATFORM_LOCAL);
env.put(PropertyConstants.INTERNAL_CONNECTION_PARAMS,DATASOURCE);
// Create an initial context, using this hashtable of environment params
InitialContext ic = new InitialContext(env);
// Lookup a home interface for the application module
ApplicationModuleHome home = (ApplicationModuleHome)ic.lookup(APPMODNAME);
// Using the home, create the instance of the appmodule we'll use
_am = home.create();
// Register the BC4J factory to handle EJB container-managed transactions
registerContainerManagedTransactionHandlerFactory();
catch(Exception ex) {
ex.printStackTrace();
throw new CreateException(ex.getMessage());
public void ejbActivate(){}
public void ejbPassivate(){}
public void ejbRemove(){}
public void setSessionContext(SessionContext ctx){ _ctx = ctx; }
public void createDepartment(int id, String name, String loc)
throws AppException {
try {
// Connect the AM to the datasource we want to use for the duration
// of this single method call.
_am.getTransaction().connectToDataSource(null,DATASOURCE,false);
// Use the "Departments" view object member of this AM
ViewObject departments = _am.findViewObject("Departments");
// Create a new row in this view object.
Row newDept = departments.createRow();
// Populate the attributes from the parameter arguments.
newDept.setAttribute("Deptno", new Number(id));
newDept.setAttribute("Dname", name);
newDept.setAttribute("Loc", loc);
// Add the new row to the view object's default rowset
departments.insertRow(newDept);
// Post all changes in the AM, but we don't commit them. The EJB
// container managed transaction handles the commit.
_am.getTransaction().postChanges();
catch(JboException ex) {
// To be good EJB Container-Managed Transaction "citizens" we have
// to mark the transaction as needing a rollback if there are problems
_ctx.setRollbackOnly();
throw new AppException("Error creating dept "+ id +\n"+ex.getMessage());
finally {
try {
// Disconnect the AM from the datasource we're using
_am.getTransaction().disconnect();
catch(Exception ex) { /* Ignore */ }
private void registerContainerManagedTransactionHandlerFactory() {
SessionImpl session = (SessionImpl)_am.getSession();
session.setTransactionHandlerFactory(
new TransactionHandlerFactory() {
public TransactionHandler createTransactionHandler() {
return new ContainerManagedTxnHandlerImpl();
public JTATransactionHandler createJTATransactionHandler() {
return new ContainerManagedTxnHandlerImpl();Hi Steve, It4s me again;
About the question I made, I tried with a single assembly-descriptor tag and a single container-transaction tag in the deployment descriptor of the session bean and these were the results.
java.lang.NullPointerException
void com.evermind.server.rmi.RMIConnection.EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER(java.lang.Throwable)
java.lang.Object com.evermind.server.rmi.RMIConnection.invokeMethod(com.evermind.server.rmi.RMIContext, long, long, java.lang.reflect.Method, java.lang.Object[])
java.lang.Object com.evermind.server.rmi.RemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
java.lang.Object com.evermind.server.rmi.RecoverableRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
java.lang.Object com.evermind.server.ejb.StatelessSessionRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
void __Proxy1.modificaEnvoltura(java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String)
void SamplemdeController.envolturaControlEJBClient.main(java.lang.String[])
Then I tried with multiple assembly-descriptor tags each with a single container-transaction tag and the results were:
java.lang.NullPointerException
void com.evermind.server.rmi.RMIConnection.EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER(java.lang.Throwable)
java.lang.Object com.evermind.server.rmi.RMIConnection.invokeMethod(com.evermind.server.rmi.RMIContext, long, long, java.lang.reflect.Method, java.lang.Object[])
java.lang.Object com.evermind.server.rmi.RemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
java.lang.Object com.evermind.server.rmi.RecoverableRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
java.lang.Object com.evermind.server.ejb.StatelessSessionRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
void __Proxy1.modificaEnvoltura(java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String)
void SamplemdeController.envolturaControlEJBClient.main(java.lang.String[])
Finally I tried with a single assembly-descriptor and multiple container tags and the results were:
java.lang.NullPointerException
void com.evermind.server.rmi.RMIConnection.EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER(java.lang.Throwable)
java.lang.Object com.evermind.server.rmi.RMIConnection.invokeMethod(com.evermind.server.rmi.RMIContext, long, long, java.lang.reflect.Method, java.lang.Object[])
java.lang.Object com.evermind.server.rmi.RemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
java.lang.Object com.evermind.server.rmi.RecoverableRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
java.lang.Object com.evermind.server.ejb.StatelessSessionRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
void __Proxy1.modificaEnvoltura(java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String)
void SamplemdeController.envolturaControlEJBClient.main(java.lang.String[])
How can I make my Stateless Session bean work out? -
Links No longer work for HowTo
Hi,
for the thread with the title:
Thread: HOWTO: Implementing a ViewObject with Multiple Updateable Dependent Entity Objects
HOWTO: Implementing a ViewObject with Multiple Updateable Dependent Entity Objects
The links in the thread no longer seem to work. Could you provide the updated links?
ThanksAre you following to the following link/reply?
Steve Muench wrote:
Please start a new thread with a new problem.
The latest information on this topic is located in section "27.9 Creating a View Object with Multiple Updatable Entities" of the ADF Developer's Guide for Forms/4GL Developers on the ADF Learning Center at http://otn.oracle.com/products/adf/learnadf.html
If yes, please see this link.
27.9 Creating a View Object with Multiple Updatable Entities
http://download.oracle.com/docs/cd/B31017_01/web.1013/b25947/bcadvvo009.htm
Thanks,
Hussein -
HOWTO: Low DPC latencies ( 100 us) on bootcamped Macbooks (Pro)
Here is a small HOWTO for getting the lowest possible DPC latencies (<100 us) on bootcamped Macbooks Pro (late 2008):
Disclaimer: I did all tests on my late 2008 Macbook Pro Unibody 2.8 GHz model with NVidia chipset and graphic. Most of the following suggestions should apply to standard Macbook models and likely older generation as well.
First of all Intel Speedstep can lead to dropouts and higher DPC latencies on small load! Unfortunately all tools that are supposed to manually switch Speedstep off don't seem to run on the late Macbooks (Pro) while on OS X you can use "Coolbook".
Your only way to make sure your processor is clocked high enough and not dynamically switching is to put up a constant load (like running your DAW pretty hot or running Prime95 at "Idle/Lowest" process Priority in the background). I will keep investigating if I can find a tool to switch Speedstep off.
Most importantly (to get rid of really bad DPC latency spikes):
Kill the process "KBDMGR.EXE"!
That's Apple's driver for controlling brightness and keyboard lighting via the function keys and setting tap options for the trackpad. It seems to have broken multithreading!
You can also change the CPU affinity of KBDMGR.EXE to CPU1 (not CPU0!) which will help decreasing DPC Latencies alot, but there will still be Audio dropouts.
Here's a small toolkit I put together that allows you to conviniently enable/disable Apple's "Boot Camp" tray application (KBDMGR.EXE) via an icon link and/or keyboard shortcut. Optionally it will switch the function of the F-Keys automatically for you depending on whether Boot Camp is loaded or not.
Furthermore it automatically turns Boot Camp's CPU priority to "Idle" and CPU affinity to CPU1 in order to turn down the bug induced DPC Latencies and prevent dropouts with Windows sounds and Media Player playback. Professional Audio users will find that only turning off Boot Camp will allow low audio latency usage. Installation instructions are included in the README.TXT for your convinience.
Boot CampED download page
Direct Download:
Boot CampED.zip - 3.3 kb
Turn off the Broadcom 802.11N WLAN driver via Device-Manager or update to the latest drivers via Microsoft Update Catalog.
Like on OS X the Airport module can lead to audio dropouts. The DPC Latencies produced by the Broadcom driver are less regular than the KBDMGR thing, alot higher in value. Best thing is to try for your own needs.
Update:Meanwhile a new Broadcom drivers was published via Microsoft's Update Catalog named "Broadcom - Network - Broadcom 4322AG 802.11a/b/g/draft-n Wi-Fi Adapter " (4322 is the chip used). This one comes with both low DPC latencies and finally the ability to use the full rate upto 300 mbit/s. Go get it! For safety you might still want to turn WLAN off during critical audio work though.
Change the graphic-card driver to "Standard VGA Driver" via Device-Manager or use RIVATUNER to enforce a fixed clock-rate and performance mode.
Update:The dynamic clock-rate switching happening with NVidia drivers in order to save power and keep temperatures low leads to extreme DPC spikes for each switch and constantly high DPC latencies when it settles in low performance 2D mode. RIVATUNER's "Enforce Performance Mode" option can be used to set the card to a fixed clock-rate. I recommend using "Low Power 3D" for audio work.
User of XP might think that they don't need this, but be aware that on XP the NVidia driver keeps running at highest clock-rates in "Performance 3D Mode" all the time. Via RIVATUNER you can switch to "Low Power 3D".
Turn off the ACPI compliant Battery driver via Device-Manager
This driver polls the battery for its current load status and produces a small, single, short spike exactly every 15 seconds. In my own tests I found that it doesn't seem to affect low latency audio performance. Furthermore turning it off will remove monitoring of your current battery status. But if you are running on power-chord anyway and want to make absolutely sure you can turn it off.
All other devices don't add much if anything to DPC latencies, but can savely be turned off if you don't need them (like Nvidia LAN, Bluetooth, Onboard High Definition Audio).
Attention: Removing the Battery while the power chord is connected results in permanently reduced CPU clock (downto the lowest clock setting possible). According to Apple this is done to prevent overloading the power-supply during heavy load as it needs the assistance of the battery from time to time.I'd like to underline that these are workaround. Now that the Broadcom drivers are fixed it is up to Apple to fix KBDMGR and to get the NVidia drivers fixed!
Furthermore it seems as if only Vista 32-bit and OS X are heavily affected by Intel Speedstep, Vista 64-bit and Windows 7 (32/64) work alot better in this regard. XP is a mixed bag.
Here are some screenshots to prove that the workarounds do help:
DPC Latency before applying the workarounds:
DPC Latency Vista 64-bit (Idle, Speedstep enabled) after applying the workarounds:
DPC Latency Windows 7 64-bit (Idle: Speedstep enabled) after applying the workarounds:
As you can see Vista's DPCs run well below 100 us once everything is optimized, Windows 7 is a bit worse, XP is even better. But practically you get the same results when using all three for professional Audio work.
Message was edited by: T1mur
Maybe you are looking for
-
How many macs can i install Pages on from single purchase?
I was told that I could install in on 3 macs (we have a mac mini and 2 macbook pro's) by the apple store? thanks
-
The method Windows.Networking.BackgroundTransfer.BackgroundDownloader.getCurrentDownloadsAsync() will consistently error out for me. To repro this: Start a bunch of (preferably large) download operations using the BackgroundDownloader. Wait for a
-
PowerPivot and PowerView Features not showing in o365 E3 Plan & SharePoint Online Plan 2.
I have o365 E3 Plan. I want to use Power View and PowerPivot features for some reporting purpose but when I go to site collection feature it is not showing me both the features but I can see those features in SharePoint site which is on-premise. I wa
-
Trouble creating new application server connection
Hi. I am trying to create a new application server connection in jdev 10.1.3.1.0. I am taking all of the default settings in the wizard, and I am specifiying user name, password and checking deploy password. When I click test connection on the last s
-
hi everyone, my issue for today is "can we join two queries " select name from v$database; select bytes/1024/1024/1024,count(segment_name) from dba_segments where segment_name = 'tablename'; could you guys please help me out with this one as well i a