Monday, September 9, 2013

Dynamics AX Hotfix 적용전 확인 사항

지난 주말 고객사의 업무 시간을 피해(Retail Business) Dynamics AX 2012 R2의 CU6(Cumulate Update 6) 적용을 작업하면서 느낀점이지만, 확실히 SQL Server의 Transaction Log를 Shrink 시킨 후 작업을 하게 되면 그만큼 속도가 빨리 끝나는 느낌이 들었습니다.

2주전에는 SQL Server Transaction Log를 정리하지 않고, CU6 적용 작업을 진행하면서 다시 Rollback했던 상황과는 다르게 금주에는 성공을 했죠.거기에 Retail POS에 대한 CU6 작업까지 마무리 짓는 상황까지..ㅎㅎ 암튼, 위 내용은 제 개인적인 생각이지만 Hotfix 적용 작업시 참고하시면 될 것 같습니다.

/* SQL Server Transaction Log Shrink Script */

ALTER DATABASE MicrosoftDynamicsAX SET RECOVERY SIMPLE
go

DBCC SHRINKFILE(MicrosoftDynamicsAX)
go

DBCC SHRINKFILE(MicrosoftDynamicsAX_log)
go

EXEC sp_helpdb MicrosoftDynamicsAX

ALTER DATABASE MicrosoftDynamicsAX SET RECOVERY FULL

 

아래 이미지는 Retail POS 에 CU6 적용 작업 후 진행시켜야 되는 Database Upgrade 화면입니다.

image image

Saturday, September 7, 2013

Item의 Default Order Settings 일괄 생성

아래 Job을 통해서 Default Order Settings(Inventory, Purchase Order, Sales Order)를 생성 시킬 수 있습니다.

static void Set_DefaultOrderSettings(Args _args)
{
    InventTable inventTable;
    InventItemInventSetup invent;
    InventItemPurchSetup purch;
    InventItemSalesSetup sales;
    ;
    delete_from invent;
    delete_from purch;
    delete_from sales;
    while select inventTable
    {
        if(!InventItemPurchSetup::findDefault(inventTable.ItemId))
        {
            InventItemPurchSetup::insertDefault(inventTable.ItemId);
        }
        if(!InventItemInventSetup::findDefault(inventTable.ItemId))
        {
            InventItemInventSetup::insertDefault(inventTable.ItemId);
        }
        if(!InventItemSalesSetup::findDefault(inventTable.ItemId))
        {
            InventItemSalesSetup::insertDefault(inventTable.ItemId);
        }
    }
}

Friday, August 16, 2013

Migrate from classic-mode to claims-based authentication

$wa = Get-SPWebApplication -Identity "http://alvin"
$wa.Properties["portalsuperuseraccount"] = "rainbowcorp\Administrator"
$wa.Properties["portalsuperreaderaccount"] = "rainbowcorp\Administrator"
$wa.Update()

$wa = Get-SPWebApplication -Identity "http://alvin"
$wa.Properties.Remove("portalsuperuseraccount")
$wa.Properties.Remove("portalsuperreaderaccount")
$wa.Update()

$WebAppName = "http://alvin"
$wa = get-SPWebApplication $WebAppName
$wa.UseClaimsAuthentication = $true
$wa.Update()

$account = "rainbowcorp\Administrator"
$account = (New-SPClaimsPrincipal -identity $account -identitytype 1).ToEncodedString()
$wa = get-SPWebApplication $WebAppName
$zp = $wa.ZonePolicies("Default")
$p = $zp.Add($account,"PSPolicy")
$fc=$wa.PolicyRoles.GetSpecialRole("FullControl")
$p.PolicyRoleBindings.Add($fc)
$wa.Update()

$wa.MigrateUsers($true)

$wa.ProvisionGlobally()

Listpage와 Formpart간의 데이터 전송 이슈ㅜ.ㅜ

프로젝트 구축사의 요구사항 중 하나인 Vendor Portal의 추가 페이지를 개발하면서, 맞딱트리고 있는 이슈중에 하나인 아래 내용을 일주일이 넘게 고민하다가 결국엔 MS Technical Support팀에 도움을 요청한 상태입니다.

이슈 : Enterprise Portal의 Listpage의 특정 칼럼의 Total을 좌측의 Formpart에 표시

단순한 칼럼레벨의 Detail의 내용을 보여주는것은 쉽게 구현이 가능하지만, Listpage에 보여지는 값들의 총 합계 내용을 보여주는 방법은 쉽지가 않음을 절실하게 깨달았습니다.

아래 이미지는 MS에 이해력을 돕고자 만든 내용이랍니다. 혹시 이와 비슷한 고민을 해 보시거나 해결 방법을 아시는 고수님들이 계신다면 도움 부탁 드릴께요…ㅜ.ㅜ

image

Thursday, August 15, 2013

SQL Server db lock 확인 방법

AX Client에서 해당 프로그램을 실행시켰는데, 해당 프로그램이 아무런 응답없이 멈춰있다면 SQL Server DB Lock을 의심해 볼 수도 있습니다.

현재 진행중인 프로젝트가 DB Transaction이 많아, Stored Procedure를 호출해서 구성되는 화면이 많다보니 종종 화면이 멈춘듯한 느낌이 받을때가 많습니다.

이럴 경우 확인 방법은 sp_who2 라는 SQL 명령어를 통해서 blkBy 칼럼을 통해 확인할 수 있습니다.

image

실행중인 SQL문장을 보고 싶다면 아래 내용을 통해 확인이 가능합니다.

DECLARE @sqltext VARBINARY(128)
SELECT @sqltext = sql_handle
FROM sys.sysprocesses
WHERE spid = 70

SELECT TEXT
FROM sys.dm_exec_sql_text(@sqltext)
GO

image

당연히 Lock 이 걸린 프로세스를 Kill 명령어를 통해서 종료시키면, 해당 lock은 풀립니다.

Friday, July 26, 2013

Create Dynamic Table in the X++

AX상에서 테이블 생성을 Manual로 일일이 작업하는 동료를 보며, SQL처럼 스크립트 같은걸 만들어 놓고 동일 작업이 필요할 경우 작업할 수 있는 방법은 없을지 찾다가 발견한 솔루션입니다.

이 내용을 통해서, 많은 X++ Developer들의 개발 생산성이 향상되길 빌며…

static void newTableCreate(Args _args)
{
    TreeNode treeNode;
    AOTTableFieldList fieldList;
    #AOT
    ;
    treeNode = TreeNode::findNode(#TablesPath);

    treeNode.AOTadd("KOR_SalesTable");
    SqlDataDictionary::synchronize();

    fieldList = treeNode.AOTfindChild('KOR_Table').AOTfindChild('fields');
    fieldList.addString('KOR_Field1');
    fieldList.addString('KOR_Field2);

    SqlDataDictionary::synchronize();
    print "Table Created";
    pause;
}

Thursday, July 25, 2013

Query Object의 내용을 문자열로 Export

AX 개발시에 Query Object를 만든 후 해당 내용을 다시 문자열로 Export 받아 코드 레벨의 Query Object 생성시 재사용할 수 있는 방법은 없을까 방법을 찾다가 아래와 같은 방법이 있음을 알아냈다.

◈ Query Object

image

◈위 내용을 문자열로 Export 받은 내용

Query Proc_PurchSummary object 2320c548: SELECT * FROM VendPurchOrderJour(VendPurchOrderJour_1) JOIN * FROM PurchLineAllVersions(PurchLineAllVersions_1) ON VendPurchOrderJour.RecId = PurchLineAllVersions.PurchTableVersionRecId JOIN * FROM VendTable(VendTable_1) ON PurchLineAllVersions.VendAccount = VendTable.AccountNum JOIN * FROM DirPartyTable(DirPartyTable_1) ON VendTable.Party = DirPartyTable.RecId JOIN * FROM InventDim(InventDim_1) ON PurchLineAllVersions.InventDimId = InventDim.inventDimId JOIN * FROM InventLocation(InventLocation_1) ON InventDim.InventLocationId = InventLocation.InventLocationId JOIN * FROM PurchTable(PurchTable_1) ON VendPurchOrderJour.PurchId = PurchTable.PurchId AND ((DocumentState=40)) JOIN * FROM HcmWorker(HcmWorker_1) ON PurchTable.WorkerPurchPlacer = HcmWorker.RecId JOIN * FROM DirPerson(DirPerson_1) ON HcmWorker.Person = DirPerson.RecId

◈Export 받는 방법

static void Job1(Args _args)  // X++ job.
{
    Query q = new Query(queryStr(Proc_PurchSummary));
    QueryRun qr = new QueryRun(q);
    info(q.toString());

}

Monday, July 8, 2013

AX 2012 Resource Pages

Microsoft Dynamics AX Resource Pages

http://community.dynamics.com/ax/b/axresources/default.aspx

AX 2012 Data Tables & Table Groups

MS Dynamics AX 2012 Standard에서 사용중인 Tables과 Table Groups 목록을 볼 수 있는 Excel Sheet 파일입니다.

총 4584개의 테이블이 있는데, R2에는 더 추가가 되었겠죠.

http://www.microsoft.com/en-us/download/details.aspx?id=17093

 

Table type (All)
System table (All)
Visible (All)
Shared? (SaveDataPerCompany = No) (All)
   
Row Labels Count of Table name
Framework 199
Group 778
Main 836
Miscellaneous 1148
Parameter 205
Reference 242
Transaction 654
TransactionHeader 24
TransactionLine 41
Worksheet 111
WorksheetHeader 112
WorksheetLine 234
Grand Total 4584

Friday, July 5, 2013

AX 2012 Enterprise Portal

아래 화면은 Sharepoint 2010 기반의 AX 2012 R2 Enterprise Portal 화면입니다.

image

상단의 Top Navigation 메뉴들은 아래와 같이 AX 모듈별로 나누어져 있습니다.

- HOME

- Procurement Sales

- Compliance

- Project management

- Service management

- Vendor portal

- Customer self-service

- Budgeting

- Retail

AX 전 모듈에서 웹상으로 봐야 할 리포트나 기본적인 트랜잭션이 필요한 화면들이 기본적으로 제공이 되지만, 매력적인건 이런 기능을 추가하거나 커스터마이징이 가능하는 것이죠.

아직은 프로젝트에 적용하기 위해 스터디 중이지만, 조만간 담당하고 있는 모듈의 EDD(Enterprise Design Document) 작성이 마무리 되면, 프로젝트에서 나온 요구사항을 반영하는 Vendor portal 개발 작업에 들어간답니다.

작업하면서 깨우치거나 느끼는 부분에 대해서는 Blog에 남기도록 하겠습니다.

Wednesday, July 3, 2013

Tuesday, May 7, 2013

Product Item Master Upload 프로그램 설치 가이드

    1. Create ProductItemManagement inbound Service
    AX2012 > System administrator > Setup > Services and Application Integration Framework > Inbound ports 의 New 버튼을 통해서 ProductItemManagement inbound Service 생성
    clip_image001
    Port name : ProductItemManagement
    Description : Product Item Management
    Service operations :
    clip_image002
    • EcoRes*
    • InventInventItemLocation*
    • InventItemBarcodeService*
    • InventItemService*
    1. Activate Button을 통해서 ProductItemManagement inbound Service 실행
    *** Item Upload 프로그램에서 사용하기 위해 WSDL URI 에 들어가 있는 URI 정보를 notepad등에 복사해 둠
    1. Import Custom inbound Service from XPO file
      • AX2012 Client에서 Ctrl + D 를 눌러 New Development Workspace를 실행
      • New Development Workspace의 Mainmenu > Command > Import를 실행시켜 PrivateProject_TKRProductItemUploadProject.xpo 를 Import
      • 아래와 같이 AOT(Application Object Tree)가 화면에 보이지 않는다면 Ctrl + D를 눌러 AOT 실행
    clip_image003
    AOT > Service Groups > SGCusAddDetailInfo 선택 한 후 오른쪽 마우스 버튼을 눌러 Deploy Service Group 실행
    • AX2012 > System administrator > Setup > Services and Application Integration Framework > Inbound ports에서 SGCusAddDetailInfo inbound Service가 있는지 확인 및 Activate 시킴
    • Item Upload 프로그램에서 사용하기 위해 WSDL URI 에 들어가 있는 URI 정보를 notepad등에 복사해 둠

Friday, March 23, 2012

모든 테이블에서 특정값을 찾고 변경하고 싶다면...

이번엔 찾은 값을 다른값으로 변경해주는 기능까지 포함된 Stored Procedure입니다.
유용하게 쓰셈!

--
CREATE PROC [dbo].[SearchAndReplace]

(
@SearchStr nvarchar(100),
@ReplaceStr nvarchar(100)
)
AS
BEGIN

-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.
-- Purpose: To search all columns of all tables for a given search string and replace it with another string
-- Written by: Narayana Vyas Kondreddi
-- Site: http://vyaskn.tripod.com
-- Tested on: SQL Server 7.0 and SQL Server 2000
-- Date modified: 2nd November 2002 13:50 GMT

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110), @SQL nvarchar(4000), @RCTR int
SET  @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
SET @RCTR = 0

WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
      ) = 0
)

WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)

IF @ColumnName IS NOT NULL
BEGIN
SET @SQL= 'UPDATE ' + @TableName +
' SET ' + @ColumnName
+ ' =  REPLACE(' + @ColumnName + ', '
+ QUOTENAME(@SearchStr, '''') + ', ' + QUOTENAME(@ReplaceStr, '''') +
') WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
EXEC (@SQL)
SET @RCTR = @RCTR + @@ROWCOUNT
END
END
END

SELECT 'Replaced ' + CAST(@RCTR AS varchar) + ' occurence(s)' AS 'Outcome'
END

모든 테이블에서 특정값을 찾고 싶다면...

SQL Server Database내의 모든 테이블의 'char', 'varchar', 'nchar', 'nvarchar' 값에 들어있는 특정값을 찾아서 출력해 주는 Stored Procedure입니다.

향후 데이터 변경 프로젝트에서 사용하면 유용할 듯 합니다.

--


CREATE PROC [dbo].[SearchAllTables]
(
    @SearchStr nvarchar(100)
)
AS
BEGIN

-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.
-- Purpose: To search all columns of all tables for a given search string
-- Written by: Narayana Vyas Kondreddi
-- Site: http://vyaskn.tripod.com
-- Tested on: SQL Server 7.0 and SQL Server 2000
-- Date modified: 28th July 2002 22:50 GMT

DECLARE @Results TABLE(ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET  @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

WHILE @TableName IS NOT NULL
BEGIN
    SET @ColumnName = ''
    SET @TableName =
    (
        SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
        FROM    INFORMATION_SCHEMA.TABLES
        WHERE       TABLE_TYPE = 'BASE TABLE'
            AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
            AND OBJECTPROPERTY(
                    OBJECT_ID(
                        QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                         ), 'IsMSShipped'
                           ) = 0
    )

    WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
    BEGIN
        SET @ColumnName =
        (
            SELECT MIN(QUOTENAME(COLUMN_NAME))
            FROM    INFORMATION_SCHEMA.COLUMNS
            WHERE       TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                AND TABLE_NAME  = PARSENAME(@TableName, 1)
                AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
                AND QUOTENAME(COLUMN_NAME) > @ColumnName
        )

        IF @ColumnName IS NOT NULL
        BEGIN
            INSERT INTO @Results
            EXEC
            (
                'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)
                FROM ' + @TableName + ' (NOLOCK) ' +
                ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
            )
        END
    END
END

SELECT ColumnName, ColumnValue FROM @Results
END

Thursday, March 22, 2012

Punctuation 정리


1. 쉼표(Comma, ,)
- 같은 것을 나열할 때
- 동격에 사용
We, engineers are weak in writings.
- 구분에 사용
In steady of lunch, we had snacks.
- 반전에 활용. 이때는 앞뒤로 넣는다.
We quit, however, Math.
- 두 개 이상 열거할 때 마지막 and 앞에 넣는다.
11, 12, and 13
- etc. 는 앞뒤로 넣는다.
The school teaches Math, Physics, Chemistry, etc., besides arts.

2. 쌍점(Colon, :)
- 여러 개를 나열할 때 사용한다. 나열되는 대상은 쉼표로 구분한다.
For example as follows: cat, dog, cow, horse, and goat

3. 쌍반점(Semicolon, ;)
영어에서 쉼표보다 강하고 마침표보다 약할 때 쓴다. 모호성이 있지만 쉼표와 마침표를 쓰지 않는 자리에 많이 쓴다.
- 독립된 두 문장을 접속사 없이 연결할 때 쓴다.
Engineers should know the Technical Writing; What is more, they should understand the Plain English.
- 나열되는 대상이 쉼표로 구분하기에는 길 때 쓴다.
The officers were elected as follows: J.A. Smith, president; B.K. Williams, vice-president; L.P. Donald, secretary.

4. 줄표(Dash, ---)
쉼표보다 강한 쉼으로 강조를 나타낸다.
Push buttons --- whatever the process on which a workman is engaged --- is only the job.

5. 붙임표(Hyphen, -)
복합단어에 사용한다.
- 복합명사에 쓴다.
Vice-president, secretary-general, broken-heart
- 복합형용사에 쓴다.
Machine-cut, rock-round, first-class
- 분수나 by에 쓴다.
Half-time, quarter-mile, by-products
- Bi, tri, semi, demi에서는 안 쓴다.
Bimonthly, tricolor, semiannual
- 라틴 접두사 anti, inter, intra, post, sub, super에는 안 쓴다.
International, postmodern, submission, superpower

6. 괄호(Parentheses, ())
- 짧은 보충설명에 쓴다. 긴 문장은 주석이나 사이드 바로 처리한다. 괄호의 사용은 되도록 자제해야 한다. 괄호의 사용은 게으름을 나타내는 것이다. 괄호 안에 괄호는 게으름의 극치이다. 괄호를 쓰는 대신에 문장을 뒤따르게 하면 된다.
Pneumatic(forced air) shock-absorber is more effective than mechanical one in performance(The test showed 30% higher).
=> … in performance. The test showed 30% higher.

7. 빗금(Slash, /)
'and'와 'or'의 뜻을 동시에 가지고 있어 모호하다. 명확한 글을 위해 빗금은 되도록 사용하지 않아야 한다.

*** 유용한 사이트
a. 쉬운 영어(Plain English) : http://www.plainlanguage.gov http://www.plainenglish.co.uk
미국과 영국을 대표하는 쉬운영어 사이트다. 'Federal Plain Language Guidelines(2010'을 볼 수 있다.

b. 미국증권거래위원회 핸드북 : http://www.sec.gov/news/extra/handbook.htm
금융분야에 유용한 쉬운영어쓰기 안내이다.

c. The Mayfield Handbook of Technical & Scientific Writing
http://www.mit.edu/course/21/21.guide/home.htm
MIT가 학생들을 위하여 과학과 기술에 관한 글쓰기의 모든 것을 모아 놓은 곳이다. 보고서의 종류별로 예문까지 나와 있다. 문법은 말할 것도 없다.

d. David A. McMurrey's Sentence-Style Problems
http://www.io.com/~hcexres/style/index.htm
30년간 대학에서 기술글쓰기를 가르치고, 11년간 IBM에서 신제품 매뉴얼을 담당했던 경력의 소유자가 개설한 사이트이다. 단어와 문장 차원에서 잘못된 것을 총망라하고 있다.


출처 : 한국의 이공계는 영어쓰기가 두렵다. - 임재춘 지음

징기스칸의 말


집안이 나쁘다고 탓하지 말라.
나는 아홉 살 때 아버지를 잃고 마을에서 쫓겨났다.

가난하다고 말하지 말라.
나는 들쥐를 잡아먹으며 연명했고,목숨을 건 전쟁이 내 직업이었고
내 일이었다.

작은 나라에서 태어났다고 말하지 말라.
그림자말고는 친구도 없고 병사로만 10만,백성은 어린애,노인까지
합쳐 2백만도 되지 않았다.

배운게 없다고 힘이 없다고 탓하지 말라.
나는 내 이름도 쓸 줄 몰랐으나
남의 말에 귀 기울이면서 현명해지는 법을 배웠다.

너무 막막하다고, 그래서 포기해야겠다고 말하지 말라.
나는 목에 칼을 쓰고도 탈출했고, 뺨에 화살을 맞고 죽었다 살아
나기도 했다.

적은 밖에 있는 것이 아니라 내 안에 있었다.
나는 내게 거추장스러운 것은 깡그리 쓸어버렸다.

나를 극복하는그순간 나는 징기스칸이 되었다.

- 징기스칸 -

------------------------------------------------------------------

본인이 처한 주위 환경에 굴하지 않는 징기스칸의 정신력...
저런 정신이라면 이 세상에서 무엇인가는 이루고 여행을 떠나지 않을까
생각이 든다.

Tuesday, March 20, 2012

EMC HVS(High Volume Server) 성능 테스트

EMC HVS(High Volume Server) 시스템 테스트 시나리오
Test 항목 : HVS를 이용한 등록 (엔진)

1.    실시 회사 : (XXXX: Documentum Server 6.5sp1)
1.1          HVS(High Volume Server)를 이용한 이미지 등록
구분
HVS 기능
Data 등록건수
적용
유무
소요시간/DB Size
DB
Imae
Injection
Speed
Batch
1
1
342297 millisecond = 5 7
225922 millisecond = 3 8
5
5
2240312 millisecond = 37 3
1260250 millisecond = 21
Scope








Batch + Scope




DB Size
Lightweight Object
초기 DB File Size
DM_XX_TEST_REP_DB.DBF 180MB
DM_XX_TEST_REP_IND.DBF 180MB
5
5
DM_XX_TEST_REP_DB.DBF 330MB
DM_XX_TEST_REP_DB.DBF 180MB
DM_XX_TEST_REP_DB.DBF 180MB
DM_XX_TEST_REP_IND.DBF 180MB

DB Partitioning











2.     Test 시스템 H/W S/W 구성
모델
용도
설치 S/W
비고
구분
내역
Lenovo T61
(Laptop)
이미지 서버
O/S
Windows Server 2003 Standard Edition SP2

CPU
Dual Core 2.5GHz

Memory
4G (/pae 옵션 적용)

DBMS
Oracle 10.2.0.3

DCTM
Content Server 6.5 sp1
DA (Documentum Administrator)
HVS(High Volume Server)




HVS - Batch Processing
Object Count = 10,000

1245211117265
1245211343187
225922 = 3분 8초


1245211836812
1245212179109
342297 = 5분 7초


Object Count = 50,000
1245292285562
1245293823328
1537766 = 25분 6초

1245374526359
1245375786609
1260250 = 21분

1245293993156
1245296233468
2240312 = 37분 3초


HVS - LightWeight Object Test
초기 DB Size
DM_XX_TEST_REP_DB.DBF 180MB (188,751,872 바이트)
DM_XX_TEST_REP_IND.DBF 180MB (188,751,872 바이트)

초기 HDD 여유 공간
52.2GB

lwso 적용전 DB Size
5만건 저장
DM_XX_TEST_REP_DB.DBF 330MB (346,038,272 바이트)
DM_XX_TEST_REP_DB.DBF 180MB (188,751,872 바이트)

HDD 공간
41.8GB

사용된 Object(LightWeight Object 적용 안됨)
CREATE TYPE "emc_payment_check" (
account integer,
check_number integer,
transaction_date date,
amount float,
bank_code integer,
routing integer
) WITH SUPERTYPE "dm_document" PUBLISH


-- lwso 적용 전 DB Size
5만건 저장
DM_XX_TEST_REP_DB.DBF 330MB (346,038,272 바이트)
DM_XX_TEST_REP_DB.DBF 180MB (188,751,872 바이트)

HDD 공간 = 41.8GB

-- lwso 적용 후 DB Size
CREATE SHAREABLE TYPE emc_payment_bank (
bank_code integer,
routing integer,
branch integer repeating
) WITH SUPERTYPE dm_sysobject PUBLISH


CREATE LIGHTWEIGHT TYPE emc_payment_check (
account integer,
check_Number integer,
transaction_date date,
amount float,
deductions float repeating
) SHARES emc_payment_bank PUBLISH


HDD 공간 = 41.9GB
1245377891171
1245379119671
1228500 = 20분 4초

DM_XX_TEST_REP_DB.DBF 180MB (188,751,872 바이트)
DM_XX_TEST_REP_IND.DBF 180MB (188,751,872 바이트)







java.exe -Xms256m -Xmx1024m -Xbootclasspath/a:C:\Documentum\config -classpath "D:\HVS_Test\HVS\bin;C:\Program Files\Documentum\Shared\dfc.jar;C:\Program Files\Documentum\Shared\log4j.jar;C:\Program Files\Documentum\dctm.jar" batch.StdBatchingExample

java.exe -Xms256m -Xmx1024m -Xbootclasspath/a:C:\Documentum\config -classpath "D:\HVS_Test\HVS\bin;C:\Program Files\Documentum\Shared\dfc.jar;C:\Program Files\Documentum\Shared\log4j.jar;C:\Program Files\Documentum\dctm.jar" lwso.lwsoExample

java.exe -Xms256m -Xmx1024m -Xbootclasspath/a:C:\Documentum\config -classpath "D:\HVS_Test\HVS\bin;C:\Program Files\Documentum\Shared\dfc.jar;C:\Program Files\Documentum\Shared\log4j.jar;C:\Program Files\Documentum\dctm.jar" batch.lw_batch xn_test_rep dmadmin dmadmin 1000 50000




C:\>java.exe -Xms256m -Xmx1024m -Xbootclasspath/a:C:\Documentum\config -classpat
h "D:\HVS_Test\HVS\bin;C:\Program Files\Documentum\Shared\dfc.jar;C:\Program Files\Documentum\Shared\log4j.jar;C:\Program Files\Documentum\dctm.jar" batch.lw_batch xn_test_rep dmadmin dmadmin 1000 50000
Started @ 2009. 6. 22 오전 10:35:29
Finished @ 2009. 6. 22 오전 10:51:44
Elapsed 975 sec


한글 파일 @!%&.tif
한글 파일명으로_테스트.tif

Wednesday, March 14, 2012

시스템 테이블을 이용한 Table Names, Column Names, Data Types 조회

프로젝트 산출물의 하나인 테이블 명세서나 DDL 스크립트를 참고해서 데이터를 분석하는 방법 보다는 아래 Query를 이용하는 방법! 강츄~

select SchemaName=SCHEMA_NAME(t.schema_id), TableName=t.name, ColumnName=c.name, DataType=ty.name, TextLength=c.max_length, c.precision, c.scale
from sys.tables t
join sys.columns c on c.object_id = t.object_id
join sys.types ty on ty.user_type_id =c.user_type_id
order by 1, 2, 3

Monday, March 12, 2012

MS SQL Server 2008 R2에서 Collation 변경하기

setup.exe
/QUIET
/ACTION=REBUILDDATABASE
/INSTANCENAME=instance_name
/SQLSYSADMINACCOUNTS= accounts
[/SAPWD=password]
[/SQLCOLLATION=collation_name]

setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=Bongsub /SAPWD=P@ssword /SQLCOLLATION=Korean_Wansung_CS_AS

http://blogs.msdn.com/b/psssql/archive/2008/08/29/how-to-rebuild-system-databases-in-sql-server-2008.aspx

주의)master 데이터베이스 변경작업이기 때문에 Backup은 필수... 테스트 해보니 모든 데이터베이스가 훌라당 날아감!

Wednesday, July 20, 2011

List of feature ID, listTemplate

Feature ID NameList Template
00bfea71-e717-4e80-aa17-d0c71b360101
Document Library101
00bfea71-1e1d-4562-b56a-f05371bb0115
Form Library 115
00bfea71-c796-4402-9f2f-0eb9a6e71b18
Wiki Page Library 119
00bfea71-52d4-45b3-b544-b1c71b620109
Picture Library 109
2510d73f-7109-4ccc-8a1c-314894deeb3a
Report Library 433
29d85c25-170c-4df9-a641-12db0b9d4130
Translation Management Library 1300
00bfea71-dbd7-4f72-b8cb-da7ac0440130
Data Connection Library130
0be49fe9-9bc9-409d-abf9-702753bd878d
Slide Library 2100
00bfea71-d1ce-42de-9c63-a44004ce0104
Announcements104
00bfea71-7e6d-4186-9ba8-c047ac750105
Contacts 105
00bfea71-6a49-43fa-b535-d15c05500108
Discussion Board 108
00bfea71-2062-426c-90bf-714c59600103
Links103
00bfea71-ec85-4903-972d-ebe475780106
Calendar 106
00bfea71-a83e-497e-9ba0-7a5c597d0107
Tasks107
00bfea71-513d-4ca0-96c2-6a47775c0119
Project Tasks 150
00bfea71-5932-4f9c-ad71-1557e5751100
Issue Tracking 1100
00bfea71-eb8a-40b1-80c7-506be7590102
Survey 102
00bfea71-de22-43b2-a848-c05709900100
Custom List 100
00bfea71-3a1d-41d3-a0ee-651d11570120
Custom List in Datasheet View 120
29d85c25-170c-4df9-a641-12db0b9d4130
Languages and Translators 1301
065c78be-5231-477e-a972-14177cc5b3c7
KPI List 432