воскресенье, 29 сентября 2013 г.

Homebrew в Mac OS


Для начала нужно установить XCode.

Далее устанавливаем homebrew командой:
 
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

Проверяем, что все установилось правильно:

brew doctor


Для PowerPC (Mac OS Tiger или Leopard):

ruby -e "$(curl -fsSkL raw.github.com/mistydemeo/tigerbrew/go)"

В ~/.bash_profile:

пропишем пути

export PATH=/usr/local/sbin:/usr/local/bin:$PATH





понедельник, 16 сентября 2013 г.

Start/Stop Oracle WebLogic Server

Запуск Oracle WebLogic Server:

1. Запускаем Node Manager:

nohup /u01/app/orawls/middleware/wlserver_10.3/server/bin/startNodeManager.sh &


2. Откроем  консоль:

cd /u01/app/orawls/middleware/wlserver_10.3/common/nodemanager
/u01/app/orawls/middleware/wlserver_10.3/common/bin/wlst.sh


3. Приконнектимся к Node Manager:

nmConnect('weblogic','weblogic1','localhost','5556','TestDomain')


где

weblogic     - имя администратора WebLogic Server;
weblogic1    - пароль администратора WebLogic Server;
localhost    - имя хоста на котором запущен NodeManager;
5556         - порт хоста на котором запущен NodeManager;
TestDomain   - имя домена.


4.  Запускаем  AdminServer:

nmStart('AdminServer')

Если не хватит памяти,  добавте в файл startup.properties параметр Arguments:
Arguments=-Xms512m -Xmx512m -XX\:PermSize\=256m -XX\:MaxPermSize\=256m


5. Запускаем ManagedServer:

nmStart('mng1')

Эта команда для запуска требует наличия:

/u01/app/orawls/middleware/user_projects/domains/TestDomain/servers/mng1/data/nodemanager/boot.properties
/u01/app/orawls/middleware/user_projects/domains/TestDomain/servers/mng1/security/boot.properties
/u01/app/orawls/middleware/user_projects/domains/TestDomain/servers/mng1/data/nodemanager/startup.properties


Файлы boot.properties можно создать вручную,
прописав там имя пользователя и пароль открытым текстом:

username=weblogic
password=weblogic1

После первого успешного запуска сервера имя пользователя и пароль в файле будут зашифрованы.


Файл startup.properties автоматически будет создан при запуске AdminServer-а каким-либо другим способом
кроме использования команды nmStart:

скриптом startWebLogic.sh
или
командой startServer().


Если управляемый сервер запускается первый раз и для него еще не созданы файлы запуска, то
для создания файлов  startup.properties и boot.properties можно использовать команду
nmGenBootStartupProps(), принимающую в качестве аргумента имя сервера.

Пример использования команды:

nmGenBootStartupProps('mng1')

При запуске данной команды необходимо, чтобы AdminServer работал и из WLST к нему было выполнено подключение.

Команда генерирует файлы по умолчанию в каталог, из которого запущен WLST.

Изменить путь к каталогу Root Directory можно, отредактировав значение одноименного параметра на вкладке Server Start страницы соответствующего сервера в консоли администрирования WebLogic.

В итоге файлы запуска должны выглядеть примерно так:

$ more /u01/app/orawls/middleware/user_projects/domains/TestDomain/servers/mng1/data/nodemanager/boot.properties

#Fri Sep 13 17:49:29 MSK 2013
TrustKeyStore=DemoTrust
password={AES}9DsWvwnj6BxghpZcWKGvKU3VGP0T/Utsu+bNktxrl/I\=
username={AES}VFoYEru88XaP7Bo/fU3+goxYOWanGXwFftclu3DWaCg\=


$ more /u01/app/orawls/middleware/user_projects/domains/TestDomain/servers/mng1/security/boot.properties

# Generated by Configuration Wizard on Thu Sep 05 17:03:07 MSK 2013
username={AES}lqqktTtksY25qS5oyPmYatr3ze/qEOhmf2KTPCWbXA4=
password={AES}RnNVF+J9ZX6vK3FI2gI6pGi4DqzcYqn2G9GuE64wWgM=


$ more /u01/app/orawls/middleware/user_projects/domains/TestDomain/servers/mng1/data/nodemanager/startup.properties

#Server startup properties
#Fri Sep 13 17:49:29 MSK 2013
SSLArguments=-Dweblogic.security.SSL.ignoreHostnameVerification\=false -Dweblogic.ReverseDNSAllowed\=false
RestartMax=2
RestartDelaySeconds=0
RestartInterval=3600
AdminURL=http\://10.1.2.235\:7001
AutoRestart=true
AutoKillIfFailed=false


После успешной генерации файлов необходимо перезапустить NodeManager.


6. Выход из консоли.

exit()



Остановка Oracle WebLogic Server:


1. Запускаем Node Manager:

nohup /u01/app/orawls/middleware/wlserver_10.3/server/bin/startNodeManager.sh &


2. Откроем  консоль:

cd /u01/app/orawls/middleware/wlserver_10.3/common/nodemanager
/u01/app/orawls/middleware/wlserver_10.3/common/bin/wlst.sh


3. Приконнектимся к Node Manager:

nmConnect('weblogic','weblogic1','localhost','5556','TestDomain')


где

weblogic     - имя администратора WebLogic Server;
weblogic1    - пароль администратора WebLogic Server;
localhost    - имя хоста на котором запущен NodeManager;
5556         - порт хоста на котором запущен NodeManager;
TestDomain   - имя домена.



4. Останавливаем  ManagedServer:

nmKill('mng1')


5. Останавливаем AdminServer:

nmKill('AdminServer')


6. Отконнектиться от Node Manager

nmDisconnect()


7. Выйдем из консоли

exit()


8. Останавливаем Node Manger

kill -9 `ps -ef | grep [N]odeManager | awk '{print $2}'`




Для автозапуска можно использовать скрипт:


# more    /etc/init.d/wls


#!/bin/bash
#
# oracle Init file for starting and stopping WLS
#
# chkconfig: 35 80 30
# description: Oracle WLS startup script
# Source function library

ORACLE_OWNER="orawls"
MW_HOME=/u01/app/orawls/middleware
WL_HOME=/u01/app/orawls/middleware/wlserver_10.3
DOMAIN_HOME=$MW_HOME/user_projects/domains/TestDomain
cp -p $MW_HOME/user_projects/domains/TestDomain/servers/AdminServer/security/boot.properties $MW_HOME/user_projects/domains/Test
Domain/servers/mng1/security/boot.properties
cp -p $MW_HOME/user_projects/domains/TestDomain/servers/AdminServer/security/boot.properties $MW_HOME/user_projects/domains/Test
Domain/servers/mng1/data/nodemanager/boot.properties
case "$1" in
start)
echo -n $"Starting WLS:"
su - $ORACLE_OWNER -c "$WL_HOME/server/bin/startNodeManager.sh &"
su - $ORACLE_OWNER -c "$DOMAIN_HOME/bin/startWebLogic.sh  &"
su - $ORACLE_OWNER -c "$DOMAIN_HOME/bin/startManagedWebLogic.sh mng1  &"
echo "OK"
;;
stop)
echo -n $"Stopping WLS:"
su - $ORACLE_OWNER -c "$DOMAIN_HOME/bin/stopManagedWebLogic.sh mng1"
su - $ORACLE_OWNER -c "$DOMAIN_HOME/bin/stopWebLogic.sh"
# STOP NODE_MANAGER
kill -9 `ps -ef | grep [N]odeManager | awk '{print $2}'`
echo "OK"
;;
*)
echo $"Usage: $0 {start|stop}"
esac




# chmod 750 /etc/init.d/wls
# chkconfig --add wls --level 0356





вторник, 10 сентября 2013 г.

Логические операции в Python


is - оператор идентичности

is not - оператор неидентичности


a = ["red", 5, None]
b = ["red", 5, None]

здесь a и b ссылаются на разные объекты

print(a is b)

>False


Возвращает True, если ссылка слева указывает на тот же самый объект, что и ссылка справа:

b = a

print(a is b)

>True


Существует понятие пустого объекта None:

a = "Oracle12c"
b = None

print(a is not None)
print(b is None)

>True
>True



Операторы сравнения:

<   -  меньше

<=  -  меньше либо равно

>   -  больше

>=  -  больше либо равно

==  -  равно

!=  -  не равно



a = 2
b = 6

print(a==b)

>False

print(a<b)

>True

print(a<=b, a!=b, a>=b, a>b)

>True True False False




a = ["red", 5, None]
b = ["red", 5, None]

print(a is b)
>False

print(a == b)
>True


Операторы сравнения могут объединяться в цепочки:

a = 9

print(0<=a<=10)

>True

Это удобнее чем выполнять два отдельных оператора сравнения и объединения их результатов через and.


Попытка сравнить несовместимые значения вызывает исключение:

print("oracle" < 5)

Traceback (most recent call last):
  File "None", line 1, in <module>
builtins.TypeError: unorderable types: str() < int()


print("10" < 5)

Traceback (most recent call last):
  File "None", line 1, in <module>
builtins.TypeError: unorderable types: str() < int()


Оператор членства

Для типов данных являющихся последовательностями или коллекциями
таких как:
 строки
 списки
 картежи
мы можем выполнить проверку членства с помощью оператора in
или не членства с помощью оператора not in

f = ("oracle", "java", 3, -9)

print( 3 in f )

>True


print( "python" in f )

>False



phrase = "oracle database administration"

print( "m" in phrase )

>True

print( "base" in phrase )

>True


Логические операторы

and
or
not

Операторы and и or  вычисляются по короткой схеме и возвращают операнд.
Они не возвращают значение типа Boolean, если операнды не являются значениями типа Boolean.

x  or y   -  if x is False, then y, else x
x and y   -  if x is False, then x, else y
not x     -  if x is False, then True, else False


Унарный оператор not оценивает свой операнд в булевом контексте и всегда возвращает значение типа Boolean.

five = 5
two = 2
zero = 0

print(five and two)

>2


print(two and five)

>5


print(five and zero)

>0


Если выражение участвует в логическом контексте, результат оценивается как значение типа Boolean,
поэтому предыдущие выражения могли бы рассматриваться, как имеющие значения True, True и False
в контексте инструкции if.

five = 5
two = 2
zero = 0
nought = 0

print(five or two)

>5

print(two or five)

>2

print(zero or five)

>5

print(zero or nought)

>0

Оператор or напоминает оператор and  -  здесь в булевом контексте были бы получены значения
True, True, True и False.

print(not(zero or nought))

>True

print(not two)

>False