- Управление пакетами ПО:
- Установить пакет:
pkgadd -G -d VBoxSolarisAdditions.pkg
- Удалить пакет:
pkgrm SUNWvboxguest
- Список установленных пакетов:
pkginfo
- Установить пакет:
- Сеть и удалённый доступ:
- Вывести список активных сетевых адаптеров:
ifconfig -a
- Перезапустить демона сетевых соединений:
svcadm restart network
- Перезапустить SSH-сервер:
svcadm restart ssh
- Вывести список активных сетевых адаптеров:
- Выключение/перезапуск:
- Выключить ОС:
poweroff
- Перезапуск ОС:
reboot
- Выключить ОС:
четверг, 29 ноября 2012 г.
Полезные команды Solaris (для консультантов)
В дополнение к статье по полезным командам Unix-систем.
понедельник, 12 ноября 2012 г.
четверг, 1 ноября 2012 г.
Проблема с сохранением изменений в Oracle SQL Developer
Проблема:
При сохранить изменения в таблице через Oracle SQL Developer получается ошибка:
При сохранить изменения в таблице через Oracle SQL Developer получается ошибка:
One error saving changes to table "SCHEMA"."TABLENAME":
Row 1: Data got commited in another/same session, cannot update row.
Вариант решения:понедельник, 22 октября 2012 г.
Ошибка "java.lang.UnsupportedOperationException: Remote JDBC disabled" и варианты её решения
Ошибка:
При попытке удалённого доступа к DataSource-у Weblogic-сервера генерируется следующая ошибка:
Удалённый доступ к JDBC отключен в Weblogic Server.
Варианты решения:
Первый вариант:
При попытке удалённого доступа к DataSource-у Weblogic-сервера генерируется следующая ошибка:
java.lang.UnsupportedOperationException: Remote JDBC disabled
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
at weblogic.jdbc.common.internal.RmiDataSource_1036_WLStub.getConnection(Unknown Source)
at oracle.integration.platform.blocks.event.saq.SAQRemoteBusinessEventConnection.createConnection(SAQRemoteBusinessEventConnection.java:122)
at oracle.integration.platform.blocks.event.saq.SAQRemoteBusinessEventConnection.enqueueEvent(SAQRemoteBusinessEventConnection.java:67)
at oracle.integration.platform.blocks.event.saq.SAQRemoteBusinessEventConnection.publishEvent(SAQRemoteBusinessEventConnection.java:54)
...
Caused by: java.lang.UnsupportedOperationException: Remote JDBC disabled
at weblogic.jdbc.common.internal.JDBCServerHelperImpl.<clinit>(JDBCServerHelperImpl.java:50)
at weblogic.jdbc.common.internal.JDBCService.initialize(JDBCService.java:91)
at weblogic.jdbc.common.internal.JDBCService.start(JDBCService.java:138)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Причина:Удалённый доступ к JDBC отключен в Weblogic Server.
Варианты решения:
Первый вариант:
- Перейти в директорию домена. Перейти в поддиректорию bin и изменить файл setDomainEnv.sh
- Найти свойство WLS_JDBC_REMOTE_ENABLED и изменить его значение с false на true:
... WLS_JDBC_REMOTE_ENABLED="-Dweblogic.jdbc.remoteEnabled=true" export WLS_JDBC_REMOTE_ENABLED ...
- Перестартовать все Managed-сервера домена.
- Установить при запуске сервера системное свойство (как сделать см.здесь):
-Dweblogic.jdbc.remoteEnabled=true
воскресенье, 7 октября 2012 г.
Публикация события в EDN из Java
Рассмотрим пример публикации события в EDN из Java для AQ и JMS на примере события:
Класс реализующий отправку события:
Данное приложение-пример для JDeveloper содержащее два проекта (здесь):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://schemas.oracle.com/events/edl" targetNamespace="http://schemas.oracle.com/events/edl/TestEvent">
<schema-import namespace="http://nl.xenta/events" location="xsd/TestEvent.xsd"/>
<event-definition name="EventElement">
<content xmlns:ns0="http://nl.xenta/events" element="ns0:TestEvent"/>
</event-definition>
</definitions>
По-умолчанию используется механизм AQ, но можно настроить и с использованием JMS (см. 41.3.6 How to Configure JMS-based EDN Implementations)
Класс реализующий отправку события:
import oracle.fabric.blocks.event.BusinessEventConnection;
import oracle.fabric.blocks.event.BusinessEventConnectionFactory;
import oracle.integration.platform.blocks.event.BusinessEventBuilder;
import oracle.integration.platform.blocks.event.jms.JmsRemoteBusinessEventConnectionFactory;
import oracle.integration.platform.blocks.event.saq.SAQRemoteBusinessEventConnectionFactory;
import oracle.soa.common.util.XMLUtil;
import org.w3c.dom.Element;
import java.util.Date;
import java.util.Properties;
import javax.jms.Queue;
import javax.jms.QueueConnectionFactory;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import javax.transaction.UserTransaction;
import javax.xml.namespace.QName;
public class EdnUtils {
private static final String EDN_JMS_CONNECTION_FACTORY_NAME = "jms/fabric/EDNConnectionFactory";
private static final String EDN_JMS_XA_CONNECTION_FACTORY_NAME = "jms/fabric/xaEDNConnectionFactory";
private static final String EDN_QUEUE_NAME = "jms/fabric/EDNQueue";
private static final String EDN_DATASOURCE = "jdbc/EDNDataSource";
private static final String EDN_LOCALTX_DATASOURCE = "jdbc/EDNLocalTxDataSource";
public static void main(String[] args) {
Properties props = new Properties();
props.put(Context.PROVIDER_URL, "t3://127.0.0.1:8001");
props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
props.put(Context.SECURITY_PRINCIPAL, "weblogic");
props.put(Context.SECURITY_CREDENTIALS, "welcome1");
try{
String eventName = "EventElement";
String eventNamespace = "http://schemas.oracle.com/events/edl/TestEvent";
String eventBodyStr = "<TestEvent xmlns=\"http://nl.xenta/events\">\n"
+ "<action>action from java</action> \n"
+ "<description>description at [" + new Date() + "]</description> \n"
+ "</TestEvent>";
Element eventBody = XMLUtil.parseDocumentFromXMLString(eventBodyStr.toString()).getDocumentElement();
InitialContext context = new InitialContext(props);
EdnUtils.publishEvent(context, false, eventName, eventNamespace, eventBody);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void publishEvent(InitialContext context, boolean isJmsEdnMode, String eventName,
String eventNamespace, Element eventBody) throws NamingException {
BusinessEventConnectionFactory factory = null;
UserTransaction userTransaction =
(UserTransaction) context.lookup("javax.transaction.UserTransaction");
if (!isJmsEdnMode) {
DataSource ds = (DataSource) context.lookup(EDN_DATASOURCE);
DataSource localTxDs = (DataSource) context.lookup(EDN_LOCALTX_DATASOURCE);
factory = new SAQRemoteBusinessEventConnectionFactory(ds, localTxDs, userTransaction);
} else {
QueueConnectionFactory queueConnectionFactory =
((QueueConnectionFactory) context.lookup(EDN_JMS_CONNECTION_FACTORY_NAME));
QueueConnectionFactory xaQueueConnectionFactory =
((QueueConnectionFactory) context.lookup(EDN_JMS_XA_CONNECTION_FACTORY_NAME));
Queue jmsQueue = ((Queue) context.lookup(EDN_QUEUE_NAME));
factory = new JmsRemoteBusinessEventConnectionFactory(queueConnectionFactory, xaQueueConnectionFactory,
jmsQueue, userTransaction);
}
BusinessEventConnection conn = factory.createBusinessEventConnection();
BusinessEventBuilder builder = BusinessEventBuilder.newInstance();
builder.setEventName(new QName(eventNamespace, eventName));
builder.setBody(eventBody);
conn.publishEvent(builder.createEvent(), 3);
conn.close();
}
}
Для сборки и запуска примера из JDeveloper потребуются следующие библиотеки:
Данное приложение-пример для JDeveloper содержащее два проекта (здесь):
- EventToFile - композит который при получении события пишет в файл на файловой системе, так же через него можно отправить событие;
- PublishEventFromJava - проект содержащий данный пример.
Подписаться на:
Сообщения (Atom)