В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Я не уверен, является ли это достаточно сформировавшийся подход для производственной системы, но я имел довольно большой успех с контролирующим трафиком базы данных с помощью сниффера сетевого трафика.
Отправьте необработанные данные между приложением и базой данных прочь к другой машине и декодируйте и проанализируйте его там.
Я использовал PostgreSQL, и декодирование трафика и превращение его в поток операций базы данных, которые могли быть зарегистрированы, было относительно просто. Я предполагаю, что это работало бы над любой базой данных, где формат пакета документируется все же.
Основной момент был то, что это не создало дополнительной нагрузки для самой базы данных.
Кроме того, это был пассивный контроль, это записало все действие, но не могло заблокировать операции, так не мог бы быть вполне, что Вы ищете.
Нет необходимости «катить свое». Просто включите аудит:
audit all;Это включает аудит для многих критических операций DDL, но DML и некоторые другие операторы DDL все еще не проверяются.
audit alter table; - DDL audit аудит выбрать таблицу, обновить таблицу, вставить таблицу, удалить таблицу; - DML audit
Примечание. Вся деятельность «as sysdba» ВСЕГДА проверяется оператором. В Windows это означает журнал событий Windows. В UNIX это обычно $ ORACLE_HOME / rdbms / audit.
Ознакомьтесь с Главой аудита Oracle 10g R2 Справочника по базам данных SQL.
Журнал аудита базы данных можно просмотреть в представлении SYS.DBA_AUDIT_TRAIL.
Следует отметить, что внутренний аудит Oracle по определению будет высокопроизводительным. Он предназначен именно для этого, и очень трудно представить что-либо еще, способное конкурировать с ним по производительности. Кроме того, существует высокая степень «детального» контроля аудита Oracle. Вы можете получить его настолько точно, насколько захотите. Наконец, таблица SYS.AUD $ вместе с ее индексами может быть перемещена в отдельное табличное пространство, чтобы предотвратить заполнение табличного пространства SYSTEM.
С уважением, Opus
Если вы хотите записать копии измененных записей в целевой системе, вы можете сделать это с помощью Golden Gate Software и не повлиять на ресурсы на стороне источника. осушать. Также вам не нужно вносить какие-либо изменения в исходную базу данных для реализации этого решения.
Golden Gate очищает журналы повторов на предмет транзакций, относящихся к списку интересующих вас таблиц. Эти изменения записываются в 'Trail File' и могут быть применены к другой схеме в той же базе данных или отправлены в цель. system и применяется там (идеально для снижения нагрузки на исходную систему).
После того, как вы получите файл следа в целевую систему, есть некоторые настройки конфигурации, вы можете установить параметр для выполнения аудита и, если необходимо, вы можете вызвать 2 функции Golden Gate для получения информации о транзакции:
1) Установите INSERTALLRECORDS Параметр репликации для вставки новой записи в целевую таблицу для каждой операции изменения, выполненной в исходной таблице. Помните, что это может занять много места, но, если вам нужен всесторонний аудит, этого, вероятно, ожидают.
2) Если у вас еще нет CHANGED_BY_USERID и CHANGED_DATE, прикрепленных к вашим записям, вы можете использовать функции Golden Gate на целевой стороне, чтобы получить эту информацию для текущей транзакции.Ознакомьтесь со следующими функциями в Справочном руководстве GG: GGHEADER ("USERID") GGHEADER ("TIMESTAMP")
Так что это не бесплатно (требуется лицензирование через Oracle) и будет требуют некоторых усилий для раскрутки, но, вероятно, гораздо меньше усилий / затрат, чем реализация и поддержка собственного решения, развертывающего ваше собственное, и у вас есть дополнительное преимущество доставки данных в удаленную систему, так что вы можете гарантировать минимальное влияние на исходную базу данных .