実際、私はページにGoogleマークアップを実装しようとしました。これにより、ユーザーコントロールはページヘッダーセクションで以下のタイプのHTMLをレンダリングします。
<link rel="alternate" hreflang="en-GB" href="http://www.mysite.com/english/index.aspx" />
<link rel="alternate" hreflang="de-DE" href="http://www.mysite.com/de/german/index.aspx" />
<link rel="alternate" hreflang="en-DE" href="http://www.mysite.com/de/english/index.aspx" />
<link rel="alternate" hreflang="ru-RU" href="http://www.mysite.com/ru/russian/index.aspx" />
<link rel="alternate" hreflang="en-RU" href="http://www.mysite.com/ru/english/index.aspx" />
<link rel="alternate" hreflang="fr-FR" href="http://www.mysite.com/fr/french/index.aspx" />
<link rel="alternate" hreflang="it-IT" href="http://www.mysite.com/it/italian/index.aspx" />
<link rel="alternate" hreflang="ja-JP" href="http://www.mysite.com/jp/japanese/index.aspx" />
<link rel="alternate" hreflang="ko-KR" href="http://www.mysite.com/kr/korean/index.aspx" />
<link rel="alternate" hreflang="pt-BR" href="http://www.mysite.com/br/portuguese/index.aspx" />
<link rel="alternate" hreflang="zh-Hans-CN" href="http://www.mysite.com/cn/chinese/index.aspx" />
<link rel="alternate" hreflang="en-US" href="http://www.mysite.com/us/english/index.aspx" />
<link rel="alternate" hreflang="en-GB" href="http://www.mysite.com/uk/english/index.aspx" />
<link rel="alternate" hreflang="en-AU" href="http://www.mysite.com/au/english/index.aspx" />
<link rel="alternate" hreflang="en-AE" href="http://www.mysite.com/ae/english/index.aspx" />
上記のhtmlでは、ブローカーLINK_INFOテーブルからHTMLのこの部分「/ae/english/index.aspx、/au/english/index.aspxなど」を見つけることができます。この実装は、LIVEブローカーデータベースを使用してLIVE Webサイトにアクセスするまで、正常に機能しました。 LIVEでこの機能を有効にすると、ブローカーデータベースのヒットが原因でサーバーのパフォーマンスが低下し、ウェブサイトの1日あたりのヒット数が150万であるため、LINK_INFOテーブルがロックされているようです。上記の機能は次のように機能します。
- Webサイトのページが読み込まれるたびに、プロキシが呼び出され、プロキシがWebサービスを呼び出し、WebサービスがSQLプロシージャを呼び出します。SQLプロシージャはLINK_INFOテーブルに移動し、SQLプロシージャに渡されたPageIDに基づいて結果のリストを取得します。
- 次に、SQLプロシージャが返されたxmlの結果がコントロールに渡され、XSLTがそれを使用して、完全なHTMLの上にレンダリングされます。
何かがおかしいようです。ブローカーデータベースに触れることなく、上記の機能を実現する他の方法がある可能性があることを提案してください。ページEVENTを作成するか、Deployerをカスタマイズすると役立ちますか?
提案してください!!
注:Tridion2009を使用しています
編集:ブローカーSQLの手順は次のとおりです。
ALTER PROCEDURE [dbo].[GETDataFromLinkInfo]
-- Add the parameters for the stored procedure here
(@PageID INT)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT DISTINCT [PUBLICATION_ID] AS n,
[URL] AS u
FROM [LINK_INFO] WITH(NOLOCK)
WHERE Page_ID = @PageID
AND Component_Template_Priority > 0
AND PUBLICATION_ID NOT IN( 232, 481 )
ORDER BY URL
FOR XML RAW ('p'), ROOT ('ps');
RETURN
END