Beispiel #1
0
void CuDlgReplicationServerPageStartupSetting::OnButtonSave() 
{
	int iret;
	CWaitCursor hourglass;

	CdIpmDoc* pIpmDoc = NULL;
	CfIpmFrame* pIpmFrame = (CfIpmFrame*)GetParentFrame();
	ASSERT(pIpmFrame);
	if (pIpmFrame)
	{
		pIpmDoc = pIpmFrame->GetIpmDoc();
		ASSERT (pIpmDoc);
	}
	if (!pIpmDoc)
		return;

	ASSERT (m_FlagsList.IsEmpty());
	while (!m_FlagsList.IsEmpty())
		delete m_FlagsList.RemoveHead();
	int i, nCount = m_cListCtrl.GetItemCount();
	CaReplicationItem* pItem = NULL;
	for (i=0; i<nCount; i++)    {
		pItem = (CaReplicationItem*)m_cListCtrl.GetItemData (i);
		if (pItem)
			m_FlagsList.AddTail (pItem);
	}

	CString csVnodeAndUsers;
	int nNodeHdl = -1;
	if (lstrcmp((char *)m_pSvrDta->LocalDBNode,(char *)m_pSvrDta->RunNode) == 0)
		csVnodeAndUsers.Format(_T("%s%s%s%s"), m_pSvrDta->LocalDBNode,
		                                   LPUSERPREFIXINNODENAME,
		                                   (LPCTSTR)m_csDBAOwner,
										   LPUSERSUFFIXINNODENAME);
	else
		csVnodeAndUsers = m_pSvrDta->RunNode;

	nNodeHdl  = LIBMON_OpenNodeStruct ((LPUCHAR)(LPCTSTR)csVnodeAndUsers);
	if (nNodeHdl == -1) {
		CString strMsg,strMsg1;
		strMsg.LoadString(IDS_MAX_NB_CONNECT);   // _T("Maximum number of connections has been reached"
		strMsg1.LoadString(IDS_E_SAVE_FILE);     //    " - Cannot save file."
		strMsg += _T("\n")+strMsg1;
		AfxMessageBox(strMsg, NULL, MB_ICONHAND | MB_OK | MB_TASKMODAL);
		return;
	}
	iret = SetReplicServerParams ( pIpmDoc, m_pSvrDta, &m_FlagsList );
	LIBMON_CloseNodeStruct (nNodeHdl);

	if ( iret == RES_SUCCESS )
		m_FlagsList.SetModifyEdit(); // Not modify.
	if (!m_FlagsList.IsEmpty())
		m_FlagsList.RemoveAll();

	EnableButtons();
}
Beispiel #2
0
BOOL CuDlgReplicationStaticPageCollision::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_cEdit1.ShowWindow (SW_HIDE);
	try
	{
		CRect    r;
		GetClientRect (r);

		m_pFrameLayout = new CfReplicationPageCollision ();
		m_pFrameLayout->Create (
			NULL,
			NULL,
			WS_CHILD,
			r,
			this);
		m_pFrameLayout->InitialUpdateFrame(NULL, FALSE);
		if (m_pFrameLayout && IsWindow (m_pFrameLayout->m_hWnd))
		{
			CvReplicationPageCollisionViewLeft* pView = (CvReplicationPageCollisionViewLeft*)m_pFrameLayout->GetLeftPane();
			ASSERT (pView);
			if (pView)
			{
				CfIpmFrame* pIpmFrame = (CfIpmFrame*)GetParentFrame();
				ASSERT(pIpmFrame);
				if (pIpmFrame)
				{
					CdIpmDoc* pIpmDoc = (CdIpmDoc*)pIpmFrame->GetIpmDoc();
					if (pIpmDoc)
					{
						CTreeCtrl& treeCtrl = pView->GetTreeCtrl();
						CaIpmProperty& property = pIpmDoc->GetProperty();
						treeCtrl.SetFont (CFont::FromHandle(property.GetFont()));
					}
				}
			}
		}
	}
	catch (CMemoryException* e)
	{
		theApp.OutOfMemoryMessage();
		e->Delete();
	}
	catch (...)
	{
		if (m_pFrameLayout)
			m_pFrameLayout->DestroyWindow();
		m_pFrameLayout = NULL;
		TRACE0 ("Cannot allocate frame (collision page new design)\n");
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
Beispiel #3
0
void CuDlgReplicationStaticPageRaiseEvent::OnButtonRaiseEventAllServer() 
{
	CdIpmDoc* pIpmDoc = NULL;
	CfIpmFrame* pIpmFrame = (CfIpmFrame*)GetParentFrame();
	ASSERT(pIpmFrame);
	if (pIpmFrame)
	{
		pIpmDoc = pIpmFrame->GetIpmDoc();
		ASSERT (pIpmDoc);
	}
	if (!pIpmDoc)
		return;

	CxDlgReplicationServerList dlg;
	dlg.m_pDBResourceDataMin = m_pSvrDta;
	dlg.m_pIpmDoc = pIpmDoc;

	int i, nSel = -1, nCount = m_cListCtrl.GetItemCount();
	for (i=0; i<nCount; i++)
	{
		if (m_cListCtrl.GetItemState(i, LVIS_SELECTED) & LVIS_SELECTED)
		{
			nSel = i;
			dlg.m_strEventFlag = m_cListCtrl.GetItemText(i, 1);
			dlg.m_strServerFlag= m_cListCtrl.GetItemText(i, 2);
			break;
		}
	}
	if (nSel == -1)
		return;
	int iret;
	CaReplicationRaiseDbevent* pItem = (CaReplicationRaiseDbevent*)m_cListCtrl.GetItemData (nSel);
	if(pItem->AskQuestion()) 
	{
		iret = pItem->AskQuestion4FilledServerFlag(&dlg.m_strServerFlag);
		if (iret == IDCANCEL) {
			m_cListCtrl.SetFocus();
			EnableButtons();
			return;
		}
	}

	dlg.DoModal();
	m_cListCtrl.SetFocus();
	EnableButtons();
}
Beispiel #4
0
void CvReplicationPageCollisionViewLeft::ResolveCurrentTransaction()
{
	CTreeCtrl& treectrl = GetTreeCtrl();
	HTREEITEM hCurrentSelected = treectrl.GetSelectedItem();
	if (!hCurrentSelected)
		return;
	HTREEITEM hSaveSelected = hCurrentSelected;
	CaCollisionItem* pItem = (CaCollisionItem*)treectrl.GetItemData(hCurrentSelected);
	if (!pItem)
		return;
	if (!pItem->IsTransaction())
	{
		hCurrentSelected = treectrl.GetParentItem(hCurrentSelected);
		pItem = (CaCollisionItem*)treectrl.GetItemData(hCurrentSelected);
	}

	if (pItem && pItem->IsTransaction())
	{
		CFrameWnd* pParent = (CFrameWnd*)GetParentFrame();
		CfIpmFrame* pFrame = (CfIpmFrame*)pParent->GetParentFrame();
		ASSERT(pFrame);
		if (!pFrame)
			return;
		CdIpmDoc* pDoc = pFrame->GetIpmDoc();

		CaCollisionTransaction* pTrans = (CaCollisionTransaction*)pItem;
		IPM_ResolveCurrentTransaction(pDoc, pItem);
		treectrl.SetItemImage (hCurrentSelected, pTrans->GetImageType(), pTrans->GetImageType());
	}


	CfReplicationPageCollision* pFrame = (CfReplicationPageCollision*)GetParentFrame();
	ASSERT (pFrame);
	if (pFrame)
	{
		CvReplicationPageCollisionViewRight* pViewR = (CvReplicationPageCollisionViewRight*)pFrame->GetRightPane();
		ASSERT (pViewR);
		if (pViewR)
		{
			CaCollisionItem* pItem = (CaCollisionItem*)treectrl.GetItemData (hSaveSelected);
			pViewR->SendMessage (WM_USER_IPMPAGE_UPDATEING, (WPARAM)hSaveSelected, (LPARAM)pItem);
		}
	}
}
Beispiel #5
0
LONG CuDlgReplicationServerPageStartupSetting::OnUpdateData (WPARAM wParam, LPARAM lParam)
{
	int iret,ires,irestype, nNodeHdl = -1;
	UCHAR DBAUsernameOntarget[MAXOBJECTNAME];
	UCHAR buf[EXTRADATASIZE];
	UCHAR extradata[EXTRADATASIZE];
	LPUCHAR parentstrings [MAXPLEVEL];
	CString cDefNumSvr,cDefDbName,cLocal;
	CString strMsg,strMsg1;

	LPIPMUPDATEPARAMS pUps = (LPIPMUPDATEPARAMS)lParam;
	m_pSvrDta = (LPREPLICSERVERDATAMIN)pUps->pStruct;
	EnableButtons();
	//
	// Specialize the OnUpdateData:
	if (!m_pSvrDta->m_bRefresh)
		return 0L;
	m_pSvrDta->m_bRefresh = FALSE;

	CdIpmDoc* pIpmDoc = NULL;
	CfIpmFrame* pIpmFrame = (CfIpmFrame*)GetParentFrame();
	ASSERT(pIpmFrame);
	if (pIpmFrame)
	{
		pIpmDoc = pIpmFrame->GetIpmDoc();
		ASSERT (pIpmDoc);
	}
	if (!pIpmDoc)
		return 0L;

	nNodeHdl  = LIBMON_OpenNodeStruct (m_pSvrDta->LocalDBNode);
	if (nNodeHdl == -1) {
		strMsg.LoadString(IDS_MAX_NB_CONNECT);  // _T("Maximum number of connections has been reached"
		strMsg1.LoadString (IDS_E_READ_FILE);   //    " - Cannot read file."
		strMsg += _T("\n") + strMsg1;
		MessageBox(strMsg ,NULL, MB_ICONHAND | MB_OK | MB_TASKMODAL);
		return 0L;
	}

	// Temporary for activate a session
	ires = DOMGetFirstObject (nNodeHdl, OT_DATABASE, 0, NULL, FALSE, NULL, buf, NULL, NULL);
	cDefDbName.Format(_T("%s::%s"), m_pSvrDta->LocalDBNode,m_pSvrDta->LocalDBName);
	//
	//Get DBA user name for this database
	parentstrings[0]=m_pSvrDta->LocalDBName;
	parentstrings[1]=NULL;
	memset (DBAUsernameOntarget,'\0',sizeof(DBAUsernameOntarget));
	iret = DOMGetObjectLimitedInfo( nNodeHdl,
	                                parentstrings [0],
	                                (UCHAR *)"",
	                                OT_DATABASE,
	                                0,
	                                parentstrings,
	                                TRUE,
	                                &irestype,
	                                buf,
	                                DBAUsernameOntarget,
	                                extradata
	                              );
	if (iret != RES_SUCCESS) {
		LIBMON_CloseNodeStruct(nNodeHdl);
		//wsprintf((char *)buf,"DBA owner on database : %s not found. Read file aborted.",parentstrings[0]);
		strMsg.Format(IDS_F_DB_OWNER,parentstrings[0]);
		MessageBox(strMsg, NULL, MB_ICONEXCLAMATION | MB_OK | MB_TASKMODAL);
		return 0L;
	}
	LIBMON_CloseNodeStruct(nNodeHdl);
	m_csDBAOwner=DBAUsernameOntarget;
	cDefNumSvr.Format(_T("%d"),m_pSvrDta->serverno);
	
	if (m_csDBAOwner.IsEmpty() ||cDefNumSvr.IsEmpty()||cDefDbName.IsEmpty())   {
		return 0L;
	}

	Cleanup();
	m_cListCtrl.DeleteAllItems();

	CString csVnodeAndUsers;
	// Read default flags on "LocalDBNode (user:XXX)"
	csVnodeAndUsers.Format(_T("%s%s%s%s"),  m_pSvrDta->LocalDBNode,
	                                    LPUSERPREFIXINNODENAME,
	                                    (LPCTSTR)m_csDBAOwner,
										LPUSERSUFFIXINNODENAME);
	nNodeHdl  = LIBMON_OpenNodeStruct ((LPUCHAR)(LPCTSTR)csVnodeAndUsers);
	if (nNodeHdl == -1) {
		strMsg.LoadString (IDS_MAX_NB_CONNECT);  // _T("Maximum number of connections has been reached"
		strMsg1.LoadString (IDS_E_READ_FILE);    //    " - Cannot read file."
		strMsg +=  _T("\n") + strMsg1;
		MessageBox(strMsg ,NULL, MB_ICONHAND | MB_OK | MB_TASKMODAL);
		return 0L;
	}
	memset (DBAUsernameOntarget,'\0',sizeof(DBAUsernameOntarget));
	iret = DOMGetObjectLimitedInfo( nNodeHdl,
	                                parentstrings [0],
	                                (UCHAR *)"",
	                                OT_DATABASE,
	                                0,
	                                parentstrings,
	                                TRUE,
	                                &irestype,
	                                buf,
	                                DBAUsernameOntarget,
	                                extradata
	                              );
	if (iret != RES_SUCCESS) {
		LIBMON_CloseNodeStruct(nNodeHdl);
		//wsprintf((char *)buf,"DBA owner on database : %s not found. Read file aborted.",parentstrings[0]);
		strMsg.Format(IDS_F_DB_OWNER,parentstrings[0]);
		MessageBox(strMsg, NULL, MB_ICONEXCLAMATION | MB_OK | MB_TASKMODAL);
		return 0L;
	}
	m_FlagsList.DefineAllFlagsWithDefaultValues(nNodeHdl , cDefNumSvr, cDefDbName, m_csDBAOwner);
	LIBMON_CloseNodeStruct(nNodeHdl);

	// Read Runrepl.opt from "LocalDBNode (user:XXX)" or From "RunNode"
	if (lstrcmp((char *)m_pSvrDta->LocalDBNode,(char *)m_pSvrDta->RunNode) == 0)
		csVnodeAndUsers.Format(_T("%s%s%s%s"), m_pSvrDta->LocalDBNode,
		                                   LPUSERPREFIXINNODENAME,
		                                   (LPCTSTR)m_csDBAOwner,
										   LPUSERSUFFIXINNODENAME);
	else
		csVnodeAndUsers = m_pSvrDta->RunNode;
	nNodeHdl  = LIBMON_OpenNodeStruct ((LPUCHAR)(LPCTSTR)csVnodeAndUsers);
	if (nNodeHdl == -1) {
		strMsg.LoadString(IDS_MAX_NB_CONNECT);  // _T("Maximum number of connections has been reached"
		strMsg1.LoadString (IDS_E_READ_FILE);   //    " - Cannot read file."
		strMsg += _T("\n") + strMsg1;
		MessageBox(strMsg ,NULL, MB_ICONHAND | MB_OK | MB_TASKMODAL);
		return 0L;
	}

	CWaitCursor hourglass;
	// Read file Runrepl.opt and fill m_FlagsList.
	iret = GetReplicServerParams   ( pIpmDoc, m_pSvrDta, &m_FlagsList );
	
	LIBMON_CloseNodeStruct (nNodeHdl);
	CaReplicationItem* pItem = NULL;
	while (!m_FlagsList.IsEmpty())
	{
		pItem = m_FlagsList.RemoveHead();
		if (pItem->IsDisplay())
			AddItem (pItem);
		else
			delete pItem;
	}

	EnableButtons();
	return 0L;
}